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

javaobject oriented programmingprogramming更新于 2024/11/9 1:16:17

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 中的 Integer

为了将 int 添加到 ArrayList,必须先将它们转换为 Integer。可以使用 add 方法完成此任务,但是必须单独添加每个 int。例如,让我们取一个包含 3 个值的 int 数组。如果我们想将这些 int 作为 Integer 附加到 ArrayList,那么我们需要仔细遍历每个 int,并使用 for 循环操作分别添加它们。再次说明,在使用 add() 方法时,可以传递 Integer 类型值而不会出现任何问题;但是,如果在这种需要的情况下,将 int 添加到仅包含整数的 ArrayList 时,需要先进行转换,然后再添加。

示例

// 使用整数值 ArrayList 的 Java 程序
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 的元素复制到数组。其中一种方法涉及强制转换并产生一个对象数组。但此方法返回一个类型化数组。

示例

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 的用例是:

将它们更改为字符。

字符串的值转换为字符 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 的局限性的程序员可以创建高效且有效的软件应用程序。


相关文章


有用资源