Java ArrayList 中不能存储哪种数据类型?
ArrayList 类实现了一个可增长的对象数组。 ArrayList 不能保存原始数据类型,例如 int、double、char 和 long。随着Java中包装类的介绍,该类被创建来保存原始数据值。这些类型的对象保存其相应原始类型(int、double、short、byte)的一个值。当在需要 JLists、ArrayLists 等对象的Java结构中使用原始数据类型时使用它们。现在,为了在ArrayList中保存int和char等原始数据进行说明。
原始数据类型不能存储在 ArrayList 中,但可以存储在 Array 中。 ArrayList 是一种 List,List 实现了 Collection 接口。 Collection 容器只需要 Objects 数据类型,所有在 Collections 中完成的操作,比如迭代,只能在 Objects 上执行,而不是 Primitive 数据类型。 ArrayList 不能存储整数。要将整数放在 ArrayList 中,我们必须将它们转换为整数。这可以在 ArrayList 的 add() 方法中完成。每个 int 必须单独添加。
案例:
- ArrayList 中的整数
- ArrayList 中的字符
案例 1: ArrayList 中的整数
要将 int 放入 ArrayList,首先将它们转换为 Integer。这可以在 ArrayList 的 add 方法中完成。每个 int 必须单独添加。例如,考虑一个 int 数组。它有 3 个值。我们创建一个 ArrayList 并将这些 int 作为整数添加到 for 循环中。
add() 方法接收一个整数。我们可以将一个 int 传递给这个方法——这个 int 被转换为一个整数。
Java
// Java Program that uses ArrayList of Integer Values
// Importing ArrayList class from
// java.util package
import java.util.ArrayList;
// Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Create and insert custom elements in array
int[] ids = { -3, 0, 100 };
// Create ArrayList of Integer type
ArrayList values = new ArrayList<>();
// For- each loop to iterate over ArrayList
for (int id : ids) {
// Add all the ints as Integers with add()
// method, here the ints are cast to Integer
// implicitly.
values.add(id);
}
System.out.println(values);
// The collections have the same lengths
System.out.println(values.size());
System.out.println(ids.length);
}
}
Java
// Importing List and ArrayList class of
// java.util package
import java.util.ArrayList;
import java.util.List;
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating and initializing ArrayList
ArrayList list = new ArrayList<>();
// Adding elements to ArrayList
// Custom inputs
list.add(7);
list.add(8);
list.add(9);
// Create an empty array and pass to toArray.
Integer[] array = {};
// Converting above array to ArrayList
// using inbuilt method - list.toArray(array)
array = list.toArray(array);
// Iterating over elements using for-each loop over
// elements of ArrayList derived from initial array
for (int elem : array) {
// Printing elements of converted ArrayList
System.out.println(elem);
}
}
}
Java
// Java Program showcasing where Data Type
// can not be stored in ArrayList
// Case 2: Java Program to convert a string
// to a list of characters
// Importing List and ArrayList classes from
// java.util package
import java.util.ArrayList;
import java.util.List;
// Class - Convert a String to a List of Characters
class GFG
{
// Main driver method
public static void main(String[] args)
{
// Custom string
String string = "Geeks for Geeks";
List chars = new ArrayList<>();
for (char ch : string.toCharArray()) {
chars.add(ch);
}
System.out.println(chars);
}
}
[-3, 0, 100]
3
3
使用 toArray 方法 – toArray 方法将 ArrayList 的元素复制到数组中。
一个返回一个 Object 数组并需要转换。但是,此版本返回一个类型化数组。
Java
// Importing List and ArrayList class of
// java.util package
import java.util.ArrayList;
import java.util.List;
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating and initializing ArrayList
ArrayList list = new ArrayList<>();
// Adding elements to ArrayList
// Custom inputs
list.add(7);
list.add(8);
list.add(9);
// Create an empty array and pass to toArray.
Integer[] array = {};
// Converting above array to ArrayList
// using inbuilt method - list.toArray(array)
array = list.toArray(array);
// Iterating over elements using for-each loop over
// elements of ArrayList derived from initial array
for (int elem : array) {
// Printing elements of converted ArrayList
System.out.println(elem);
}
}
}
7
8
9
案例 2 :ArrayList 中的字符
在Java ArrayList char字符用例是:
- 将它们转换为字符
- 将字符串值转换为字符ArrayList。
示例:将字符串转换为字符列表的Java程序
Java
// Java Program showcasing where Data Type
// can not be stored in ArrayList
// Case 2: Java Program to convert a string
// to a list of characters
// Importing List and ArrayList classes from
// java.util package
import java.util.ArrayList;
import java.util.List;
// Class - Convert a String to a List of Characters
class GFG
{
// Main driver method
public static void main(String[] args)
{
// Custom string
String string = "Geeks for Geeks";
List chars = new ArrayList<>();
for (char ch : string.toCharArray()) {
chars.add(ch);
}
System.out.println(chars);
}
}
[G, e, e, k, s, , f, o, r, , G, e, e, k, s]