Java ArrayList中不能存储哪种数据类型?


ArrayList是对象的动态列表,你不能在ArrayList中存储原始值,例如int、double、char或long。Java中包装类的创建允许保存原始数据类型,并且这些类型的每个对象都为其各自的原始数据类型(int、double、short或byte)保存单个值。要在像JLists或ArrayLists这样的Java结构中使用原始数据类型(这些结构需要对象),我们需要使用包装器,本文解释了如何使用ArrayList存储简单数据类型,例如int和char。

原始数据类型不能存储在ArrayList中

Collection接口只接受对象,包括ArrayList(一种List类型)。Collection对象的迭代只能使用对象数据类型完成,不能使用原始数据类型。因此,不能在ArrayList中存储int,必须首先使用add()方法将其转换为Integer。必须逐个添加每个int才能实现此目的。

案例

ArrayList中的整数

为了将int添加到ArrayList,必须先将其转换为Integer。可以使用add方法执行此任务,但是必须分别添加每个int。例如,让我们取一个包含3个值的int数组。如果要将这些int作为Integer附加到ArrayList,则需要仔细遍历每个int,并使用for循环操作分别包含它们。再次说明,在使用add()方法时,可以毫无问题地传递Integer类型的值;但是,如果需要像在这种情况下,将int添加到只包含Integer的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的char字符ArrayList的用例是

将它们更改为字符。

字符串的值被转换为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]

结论

Java的ArrayList实现为运行时对象存储和操作提供了令人印象深刻的功能。但是,某些数组不能使用此方法,必须以不同的方式处理。为了有效地将特定类型的数据存储在编程语言中,开发人员必须识别与这些结构相关的约束,并选择不同的存储选项,了解Java ArrayList的局限性的程序员可以创建高效且有效的软件应用程序。

更新于:2023年8月1日

546 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.