Java 哪些数据类型不能存储在ArrayList中
ArrayList是一个动态对象列表,不能存储像int、double、char或long这样的原始值。Java中包装类的创建允许持有原始数据类型,并且每个属于这些类型的对象都保存了相应原始数据类型(int、double、short或byte)的单个值。为了在Java中的结构(如JLists或ArrayLists)中使用原始数据类型,因为它们要求对象,我们需要使用包装类。本文将详细说明如何使用ArrayList来存储诸如int和char等简单数据类型。
原始数据类型不能存储在ArrayList中
Collection接口只接受对象,包括ArrayList,它是List的一种类型。只能使用对象数据类型对Collection对象进行迭代,不能使用原始数据类型。因此,无法将int存储在ArrayList中,必须先使用add()方法将它们转换为Integer。为了实现这一点,必须逐一添加每个int。
案例
ArrayList中的整数
为了将int添加到ArrayList中,必须首先将它们转换为Integer。可以使用add方法执行此任务,但是每个int必须单独添加。例如,假设有一个包含3个值的int数组。如果我们想将这些int作为Integer附加到ArrayList中,那么我们需要仔细遍历每一个int,并使用for循环操作单独将它们包括进去。再次强调一下,使用add()方法时,可以传递Integer类型的值而无需任何问题;但是,如果需要将int添加到只包含Integers的ArrayList中时,需要先进行强制转换。
示例
// Java Program that uses ArrayList of Integer Values
import java.util.ArrayList;
public class demo {
public static void main(String[] args) {
int[] ids = { -3, 0, 100 };
ArrayList<Integer> values = new ArrayList<>();
for (int id : ids) {
values.add(id);
}
System.out.println(values);
System.out.println(values.size());
System.out.println(ids.length);
}
}
输出
[-3, 0, 100]
3
3
使用toArray方法
它用于将ArrayList的元素复制到一个数组中。其中一种涉及强制类型转换并生成一个Object数组。但是这个变体返回一个有类型的数组。
示例
import java.util.ArrayList;
import java.util.List;
public class demo {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(7);
list.add(8);
list.add(9);
Integer[] array = {};
array = list.toArray(array);
for (int elem : array) {
System.out.println(elem);
}
}
}
输出
7
8
9
ArrayList中的字符
Java中ArrayList的char字符使用方法如下:
将它们更改为字符。
字符串的值被转换为Character ArrayList。
示例
import java.util.ArrayList;
import java.util.List;
public class demo {
public static void main(String [] args) {
String string = "Computer Science";
List<Character> chars = new ArrayList<>();
for (char ch : string.toCharArray()) {
chars.add(ch);
}
System.out.println(chars);
}
}
输出
[C, o, m, p, u, t, e, r , S, c, i, e, n, c, e]
结论
Javas的ArrayList实现提供了令人印象深刻的运行时对象存储和操作功能。然而,有些数组不能使用这种方法,并且必须以不同的方式处理。为了有效地存储特定类型的数据,程序开发人员必须认识到与这些结构相关的限制,并选择不同的存储选项。了解Java ArrayList的限制的程序员可以创建出高效和有效的软件应用程序。