Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java数组vs ArrayList vs List_Java_Arrays - Fatal编程技术网

Java数组vs ArrayList vs List

Java数组vs ArrayList vs List,java,arrays,Java,Arrays,我试图理解数组、ArrayList和List之间的关系 假设我想通过将数组转换为ArrayList,然后转换为HashSet,然后返回到数组来删除重复项 这是如何工作的?int[]array={1,2,3,4,5}; int[] array = {1, 2, 3, 4, 5}; for(int i : array) { System.out.print(i+", "); } System.out.println(); A

我试图理解数组、ArrayList和List之间的关系

假设我想通过将数组转换为ArrayList,然后转换为HashSet,然后返回到数组来删除重复项

这是如何工作的?

int[]array={1,2,3,4,5};
    int[] array = {1, 2, 3, 4, 5};
    for(int i : array) {
        System.out.print(i+", ");
    }
    System.out.println();
    ArrayList myArrayList = new ArrayList();
    for(int num : array) {
        myArrayList.add(num);
    }
    System.out.println(myArrayList);
    HashSet<Integer> myHashSet = new HashSet<Integer>();
    for(int i = 0;i<myArrayList.size();i++) {
        myHashSet.add((Integer) myArrayList.get(i));
        
    }
    System.out.println(myHashSet);
for(int i:array){ 系统输出打印(i+“,”); } System.out.println(); ArrayList myArrayList=新建ArrayList(); for(int num:array){ myArrayList.add(num); } System.out.println(myArrayList); HashSet myHashSet=新HashSet(); 对于(int i=0;i 数组、ArrayList和List之间的关系

数组是使用您在问题中显示的
[]
{}
符号创建的。它不是动态分配的

列表是一个接口,它只是它的实现必须响应的方法的指南


ArrayList是列表的实现。

我将查看以下链接:

数组用于基本体,如int和double。ArrayList用于对象,因此向量和用户创建的类等内容。哈希集用于更具体的实例,但通常用于将代码中的数据写入输出文件


希望能解决一些问题!

数组是一个固定长度的数据结构。它是一个连续的内存块。假设您有一个长度为2的x3000数组。一个数组保持在x3000和x3001。请记住,这过于简化了概念,因为元素大小和每个内存位置的大小肯定会影响数组元素的位置(不总是在x3001处结束)

列表是一种抽象数据类型(ADT),列表数组之间的显著差异是列表没有固定的长度。可能有更多的差异,但可能因情况而异


ArrayList是一个ADT列表,但它是使用数组实现的。这就像在处理需要使用数组构造堆栈、队列等的问题时一样。

如果目标是删除重复项,则不需要创建ArrayList或哈希集,但如果您只是尝试转换,我相信
java.util
你也可以有对象数组,所以你的答案是不正确的。你也不能直接比较列表和集合。这是两个独立的数学概念。列表是有序的,集合不是。列表允许重复,而集合不允许重复元素
    int[] array = {1, 2, 3, 4, 5};
    for(int i : array) {
        System.out.print(i+", ");
    }
    System.out.println();
    ArrayList myArrayList = new ArrayList();
    for(int num : array) {
        myArrayList.add(num);
    }
    System.out.println(myArrayList);
    HashSet<Integer> myHashSet = new HashSet<Integer>();
    for(int i = 0;i<myArrayList.size();i++) {
        myHashSet.add((Integer) myArrayList.get(i));
        
    }
    System.out.println(myHashSet);