• Java中[]数组和ArrayList的区别


    数组[]

    其容量固定且无法动态改变
    最高效

    ArrayList

    容量可动态增长
    效率相对低一些

    两者不同

    如果无法确定数组大小 建议使用 ArrayList

    数组[]使用
    创建new []对象
    nums[index] = 添加
    = nums[index] 获取

    ArrayList使用
    创建ArrayList对象
    使用add()方法 添加对象
    使用get(index)获取值

    对于ArrayList来说,
    当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。

    ArrayList是Array的复杂版本
    ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。

    两者转换

    字符串举例子

    import java.util.ArrayList;
    
    public class Test {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            list.add("java1");
            list.add("java2");
            list.add("java3");
            int size = list.size();
    
            String[] temp = list.toArray(new String[size]);
    
            for (String s: temp){
                System.out.print(s + " "); // java1 java2 java3 
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    java1 java2 java3 
    
    • 1

    整数转换

    
    import java.util.ArrayList;
    
    public class Test {
        public static void main(String[] args) {
            ArrayList<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            int size = list.size();
            Integer[] b = new Integer[size];
    
            b = list.toArray(b);
            for (int s: b){
                System.out.print(s + " "); //1 2 3 
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    [] 转换为ArrayList
    使用Arrays.asList()

    import java.util.ArrayList;
    import java.util.Arrays;
    
    public class Test {
        public static void main(String[] args) {
            String[] array = {"java01", "java02", "java03"};
            ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(array));
    
            System.out.println(arrayList); // [java01, java02, java03]
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    算法提升:图的启发式搜索算法(A算法、A*算法)
    python GUI
    A-level商务例题解析及练习market segmentatio
    echarts实现折线图点击添加标记
    Eureka Server配置
    国密复习
    【redis】字符串
    Ubuntu22.04 + ROS2 Humble配置Moveit2环境
    电脑连上WIfi但无网络的问题解决办法
    【pwn入门】用gdb实现第1个pwn
  • 原文地址:https://blog.csdn.net/weixin_46969441/article/details/125940564