首页 > 编程知识 正文

stream的使用,java中list转数组

时间:2023-05-04 00:22:35 阅读:46362 作者:416

文章声明目录数组和创建数组三种初始化数组的特征二维数组稀疏数组Arrays类Arrays.asList数组转换使用Liststream流列出基本数据类型使用Liststream流列出引用类型

数组是指对同一类型数据的集合数组进行优先排序,取数组中的值,通过下标,下标从0开始的arr.length开始,取得数组长度数组的声明和//数组的声明int [ ] nums [ ]; //序列为nums=new int[10]; int[] nums=new int[10]; 数组的三种初始化//静态初始化int[]array={1、2、3、4、5}; //动态初始化(包括默认初始化)/*动态初始化是之后必须手动赋值的默认初始化---基础类型和引用类型的默认值*/int[] arr=new int[10]; 数组的特征

1 .长度为ArrayIndexOutOfBoundsException :数组下标越界异常

2 .类型匹配

3 .因为是new,所以数组对象本身就在堆中

二维阵列int [ ] [ ] arr={ 1,2 }、{ 2,3 }、{ 3,4 }; system.out.println(arr[0][0]; //1系统. out.println (arr [0] [1]; //2稀疏阵列如果一个阵列的大部分元素为0或相同值的阵列,则稀疏阵列可以压缩记录阵列中总共有多少行多少列、多少个不同的值…每个值的位置int[][] arr=new int[11][11]; arr[0][2]=1; arr[1][3]=2; //稀疏阵列只能是二维阵列---第一行决定多少行/多少列/多少个值(n )---int[n 1][3] n 1行:因为第一行给出矩阵值//1。 int sum=0 for(int[]ints:ARR ) for ) intan int : ints (anint!=0) sum; } } } //2稀疏数组int[][] sparse=new int[sum 1][3]; //3赋值sparse[0][0]=arr.length; sparse[0][1]=arr[0].length; sparse[0][2]=sum; for(intI=0; i arr.length; I ) for(intj=0; j arr[i].length; j () if ) ARR[I][j]!=0) { sparse[i 1][0]=i; sparse[i 1][1]=j; sparse[i 1][2]=arr[i][j]; }}for(int[]ints:sparse ) for ) intanint:ints ) system.out.print(anint't ' ); } System.out.println (; } /* 11112 021 132 */} Arrays类//Arrays类包含用于处理数组的各种方法(如排序搜索)--详细APIint[]b={1、3、4、6、7、 String[] s={'a '、' b '、' c'}; integer [ ] I={ 1,3,4,6,7,5,55,666,44,88,11 }; //打印数组stringstring=Arrays.tostring(b ); //排序---升序Arrays.sort(b ); //降序Arrays.sort(I,Collections.reverseOrder ) ); //比较必须是包类的//数组元素是否相等---元素一一对应于布尔equals=arrays.equals (b,c )的//数组剪切几个int [ ] int /*数组转换List asList--数组只能是包装器---List请求类是包装器,ArrayList是Arrays自己定义的静态内部类,而不是包装器直接作为数组存储在List中直接生成的List * system.out.println(ints1.size ); //1 liststringstrings=arrays.as list (s; Arrays.aslistArrays.aslist(t…a )—T extends Object基本数据类型不能通用。 对于基本数据类型的数组,由于将数组用作参数,因此转换后的列表中只包含一个int[]元素

Arrays.asList生成的ArrayList为自己定义的静态内部类,没有实现add和remove方法,所以生成的List长度固定,不能增删,只能查改

数组转换list,如数组转换List3358www.Sina.com/或包装类

String[] s={“a”、“b”、“c”}

第一种方法3360listlist=Arrays.aslist(s;

无法添加或删除以这种方式转换了数组的ListA、list。 只能调查了。 否则,我就扔例外

第二种方式: list list=new ArrayList (arrays.as list (s ) );

通过ArrayList构造函数将Arrays.aslist(Strarray )返回值从java.util.Arrays.ArrayList转换为java.util.ArrayList,然后进行添加/删除更改

第三种方式: List list=new ArrayList (;

collections.addall (列表,s;

用Collections.addAll(arrayList,strArray )方式转换,用collections.addall )方式将数组中的元素转换为二进制并添加到list是最有效的方法。

使用流将基本数据类型转换为List核心是将**基本数据类型数组转换为包装类并将其转换为list **。 JDK1.8提供了基本数据类型仅支持int long double的流

int [ ] I={ 1,2,3 }; intstream stream=arrays.stream (I; 流//stream.foreach (system.out :3360 println ); //123 streamintegerboxed=stream.boxed (; //integerlistintegercollect=boxed.collect (collectors.to list ) ); //listintegerlist=arrays.stream (I ).boxed ).collect (collectors.to list ) ); system.out.println(collect; student[]s={newstudent(18,'平静的早晨' },newstudent ) 20,' rqdxtd,使用流,省去列出//装箱引用类型的步骤; liststudentcollect=arrays.stream (s ).collect (collectors.to list ); system.out.println(collect;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。