首页 > 编程知识 正文

一个集合的全体变换有多少种,string数组转集合

时间:2023-05-05 04:33:01 阅读:18336 作者:3204

开发中经常使用数组和集合之间的变换以及集合和集合之间的变换。

JDK有现成的API。

1 .首先数组和集合之间的转换:

1 import java.util.ArrayList; 2 import java.util.Arrays; 3 import java.util.List; 4 publicclasscollectionchange {6publicstaticvoidmain (string [ ] args ) )7liststringlist=newarrayliststring ); 8list.add(aa ); 9list.add('bb ); 10 list.add (抄送); 11system.out.println(list );[aa,bb,cc]12 //为什么list对象以常规数组格式打印? 是否在ArrayList中重写了toString ()方法? 13 //原因是直接在:ArrayList父类AbstractList父类AbstractCollection中打印toString () 14 //代码外部的分析15 16 //数组对象是在数组中打印的19如果要打印21 //数组对象中的数组元素,请使用以下方法21 //详见代码外部分析22 system.out.println (arrays.as list (array ) ); 23 }24 }输出结果:

[aa,bb,cc][Ljava.lang.String; @e5bbd6[aa、bb、cc]关于打印列表对象直接出现的是列表对象中的内容。

继承关系图如下:

在ArrayList中继承了AbstractList,在AbstractList中继承了AbstractCollection

在AbstractCollection中进行了toString ()方法的重写

因此,直接打印list对象将打印list的内容。

如果要直接打印数组中的内容,可以执行循环扫描,也可以使用arrays.aslist(array )方法。

请参阅JAVA的API:

aslistpublicstatictlistt http://www.Sina.com/(t . a )返回指定数组支持的固定大小的列表。 对返回列表的更改将直接写入数组中。 )此方法与Collection.toArray ) )一起提供了基于数组的API和基于collection的API之间的桥梁。 的列表是可序列化的,并实现了随机访问。 此方法还提供了一种创建初始化为包含多个元素的固定长度列表的便捷方法。

liststringstooges=arrays.as list ('宽大的西装'、' Moe '、' Curly ' );asLista -支持列表数组。参数:指定数组的列表视图。 2 .从2.java集合到数组的转换有两种方法

//List转换为数组的操作。 Arrays的asList (或Collections的addAll )…)方法。

String[] array1=new String[]{'aa '、' bb '、' cc'}; liststringlist1=arrays.as list (array ); list1.add(DD ); //使用此方法生成的List无法执行添加/删除操作。 以下操作没有此限制: //exceptioninthread ' main ' Java.lang.unsupportedoperationexceptionstring [ ] arra ang

]{"aa","bb","cc"}; List<String> list2=new ArrayList<String>(); Collections.addAll(list2,array2); list2.add("dd");

 

 

3.下面是集合中各个集合对象转换的小总结

1 package cn.itcast.collectionChange; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.HashMap; 6 import java.util.HashSet; 7 import java.util.List; 8 import java.util.Map; 9 import java.util.Set;10 11 public class CollectionChange2 {12 public static void main(String[] args) {13 //一.List-->数组 用到了list对象的toArray()方法(返回Object数组 ).14 List<String> list = new ArrayList<String>(); 15 list.add("tom"); 16 list.add("Jerval"); 17 list.add("WeiSi"); 18 19 //①对应的Object数组.20 Object[] objects = list.toArray();//返回Object数组 21 //打印数组中的元素.22 System.out.println("objects:"+Arrays.toString(objects)); 23 24 //②变成相应的String数组.(方式一)list对象的toArray()方法.25 String[] strings1 = new String[list.size()]; 26 list.toArray(strings1);//将转化后的数组放入已经创建好的对象中 27 System.out.println("strings1:"+Arrays.toString(strings1)); 28 29 //③变成相应的String数组.(方式二)list对象的toArray(T[])方法.30 //下面的toArray(new String[0])中仅仅是参数要传递一个数组类型.数组要初始化,中括号重要有一个数组.31 //注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。32 String[] strings2 = list.toArray(new String[0]);//将转化后的数组赋给新对象 33 System.out.println("strings2:"+Arrays.toString(strings2)); 34 35 36 //二.数组-->List 数组工具类Arrays中的asList()方法. 37 String[] ss = {"mldxrk","KK"}; 38 List<String> list1 = Arrays.asList(ss); 39 List<String> list2 = Arrays.asList("AAA","BBB"); 40 System.out.println(list1); 41 System.out.println(list2); 42 43 44 //三.Set-->List 直接用List中的构造方法就可以了.45 //ArrayList(Collection<? extends E> c) 46 //构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。47 Set<String> set = new HashSet<String>();48 set.add("11");49 set.add("11");50 set.add("33");51 List<String> list3 = new ArrayList<String>(new HashSet<String>()); 52 List<String> list4 = new ArrayList<String>(set); 53 54 //四.List-->Set 55 //用Set集合中的构造方法56 Set<String> setx = new HashSet<String>(new ArrayList<String>()); 57 58 //五.数组-->Set 先把数组用Arrays中的asList变成一个list,然后再转换成Set. 59 String[] strs = {"AA","BB"}; 60 Set<String> set2 = new HashSet<String>(Arrays.asList(strs)); 61 System.out.println(set2); 62 63 //六.Set-->数组 用Set对象中的toArray()方法.64 Set<String> set3 = new HashSet<String>(Arrays.asList("PP","OO")); 65 66 String[] strSet = new String[set3.size()]; 67 set3.toArray(strSet); 68 System.out.println(Arrays.toString(strSet)); 69 70 //七.Map操作 71 Map<String, String> map = new HashMap<String, String>(); 72 map.put("YYY", "UUU"); 73 map.put("RRR", "TTT"); 74 // 将键转化为Set 用keySet()方法. 75 Set<String> mapKeySet = map.keySet(); 76 77 // 将值转化为Set 78 Set<String> mapValuesSet = new HashSet<String>(map.values()); 79 80 // 将值转化为List 81 List<String> mapValuesList = new ArrayList<String>(map.values()); 82 }83 }

 









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