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

📅  最后修改于: 2022-05-13 01:54:28.198000             🧑  作者: Mango

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 必须单独添加。

案例:

  1. ArrayList 中的整数
  2. 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]