首页 > 其他分享 >集合:Arrays.asList() 和 new ArraysList()

集合:Arrays.asList() 和 new ArraysList()

时间:2024-03-27 22:44:40浏览次数:12  
标签:Arrays ArrayList 列表 数组 ArraysList new asList

 

 Arrays.asListnew ArrayList 在 Java 中都与集合有关,但是它们之间有一些重要的区别。

概述

 1) Arrays.asList():T... 是一个可变参数(varargs),接收任意参数后,会组合为一个数组。

 

        Arrays.asList("字符串列表.");    // 字符串列表
        Arrays.asList(2024);    // 整数列表

        int[] array = {1,2,3,4,5};
        Arrays.asList("多元素列表", array);  // 可放多个元素

 

  2) new ArrayList():在创建对象存储类型可为包装类、类、接口、数组。

        ArrayList<Integer> integerList = new ArrayList<>(); // 存储整数对象
        ArrayList<Double> doubleList = new ArrayList<>(); // 存储双精度浮点数对象

        ArrayList<String> stringList = new ArrayList<>(); // 存储字符串对象
        ArrayList<Person> personList = new ArrayList<>(); // 存储自定义类对象

        ArrayList<List<Integer>> nestedList = new ArrayList<>(); // 存储整数列表对象的列表
        ArrayList<Map<String, Integer>> mapList = new ArrayList<>(); // 存储映射对象的列表

        ArrayList<int[]> intArrayList = new ArrayList<>(); // 存储整型数组对象
        ArrayList<String[]> stringArrayList = new ArrayList<>(); // 存储字符串数组对象

        ArrayList<String> list = new ArrayList<>(); //
        list.add("添加"); // 添加元素
        list.remove(0);  // 移除元素

 

异同

 类型:

  Arrays.asList 返回的是一个由指定数组支持的固定大小的列表。这意味着不能向该列表添加或删除元素,但是可以修改已有的元素。

  new ArrayList 创建的是一个可变大小的列表,可以根据需要添加或删除元素。

 

 底层数据结构:

  Arrays.asList 返回的列表是基于原始数组的,没有进行额外的内存分配。这意味着,对 Arrays.asList 返回的列表进行操作,将直接影响到原始数组。

  new ArrayList 创建的是一个基于动态数组的列表,它会根据需要自动调整大小,不会影响到原始数组。

 

 可变性:

  Arrays.asList 返回的列表是不可变的(固定大小的),不能直接增加或删除元素。

  new ArrayList 创建的列表是可变的,可以通过添加、删除元素来改变列表的大小和内容。

 

 

  总结:

   如果需要一个不可变的、固定大小的列表,并且已有一个数组作为支持,那么 Arrays.asList 是一个不错的选择。如果需要一个可变的、动态大小的列表,或者希望不受原始数组的影响,那么应该使用 new ArrayList

 

标签:Arrays,ArrayList,列表,数组,ArraysList,new,asList
From: https://www.cnblogs.com/warmNest-llb/p/18100493

相关文章

  • CF1896C Matching Arrays 题解
    题目简述给定两个长度为$n$的数列$a,b$,再给定一个数$x$,请你判断是否存在一种重排$b$数列的方式,使得满足$a_i>b_i$的$i$恰好有$x$个。$n\leq2\times10^5$。题目分析遇到这种可行性问题,首先考虑做出最优解,以此来判断是否无解。接下来,可以思考最优解如何构造,我们......
  • Arrays简单的使用方法
    数组packagemethod;importjava.util.Arrays;publicclassArrayDemo04{publicstaticvoidmain(String[]args){int[]a={1,2,15,47,56,22,222,11,4,4455};//Arrays.sort(a);//排序:升序Arrays.fill(a,2,4,0);//从2-4被0填充,fill填充......
  • Arrays工具类
    5.Arrays工具类5.1介绍数组操作工具类,专门用于操作数组元素方法名说明publicstaticStringtoString(类型[]a)将数组元素拼接为带有格式的字符串publicstaticbooleanequals(类型[]a,类型[]b)比较两个数组内容是否相同publicstaticintbinarySearch(in......
  • ArrayIndexOutOfBoundException and NegativeArraySizeException in Java
    ArrayIndexOutOfBoundExceptionArrayIndexOutOfBoundsException occurswhenweaccessanarray,ora Collection,thatisbackedbyanarraywithaninvalidindex. Thismeansthattheindexiseitherlessthanzeroorgreaterthanorequaltothesizeofthe......
  • java8中,Arrays.sort()默认是升序的,对于基本数据类型,使其降序怎么实现
    对于引用数据类型,自定义比较器对象,实现Comparator接口/Comparable接口对于基本数据类型,自定义比较器对象,将基本数据类型转换成对应的包装类型即可但是这样写是错误的,importjava.util.Arrays;importjava.util.Comparator;publicclassSortExample{publicstatic......
  • Fancy Arrays
    好题中的好题看这篇题解这篇题解的那个绝对值不应该打的,因为那里本来就是表示的差分数组解释一下什么叫确定最小值。当确定了差分数组之后,我们如果确定了\(a_1\),整个数组就确定了;即使我们将\(a_1\)当成一个变量,\(a_i\)与\(a_1\)的差值也是知道的,所以我们一定知道这个数列的最小......
  • Arrays
    Arrays.toString()Arrays.copyOfRnage()拷贝区间[from,to)Arrays.copyOfArrays.setAll()从setAll底层源码可知,apply方法的入参是原数组的下标,返回值是修改后的对应下标的元素Arrays.sort()基本数据类型排序数组中存储的是对象Java中有两种方式来指定比较规则......
  • CF1223F Stack Exterminable Arrays 题解
    分析接着这个说。现在我们需要优化\(\mathit{nxt}_{i}\)。重新定义一下,\(\mathit{nxt}_{i,j}\)表示在后\(i\)个数中,\(j\)第一次出现的位置,且\([i+1,\mathit{nxt}_{i+1,a_i}-1]\)是一个合法串。这玩意很像一个DP,所以完全可以按照DP的转移思路转移:\(\mathit{nxt}_{i,j}=......
  • java.util.Arrays 快速学习教程
    在Java中,java.util.Arrays类提供的多种数组操作功能,可以有效地执行各种数组相关的操作,使得数组处理变得简单和高效。打印数组String[]arr=newString[]{"a","b","c","d"};System.out.println(Arrays.toString(arr));//输出[a,b,c,d]Arrays.toString(arr),不过......
  • CF1398C Good Subarrays(写给我们萌新团体)
    GoodSubarrays传送门:GoodSubarrays-洛谷|计算机科学教育新生态(luogu.com.cn)思路暴力!!!!!一如既往的暴力!!!复杂度O(n^2)数据n到1e5TLE必定TLE我们可以用一个桶来优化实质上其实还是高中所学的排列组合思想第一步:当然是前缀和了,这边讲给新手写一下,有点冗杂,是高手直接......