您的位置:首页 > 其它

List、Set、Map、数组之间相互转换

2018-07-29 16:34 615 查看

一、概述

  • 集合转数组:使用集合的toArray方法
  • 数组转集合:先使用Arrays.asList()方法,再使用相应的集合构造方法创建集合
  • 集合间的转换:直接使用构造方法

二、代码

1. List和Set集合的转换:

Set set = new HashSet(new ArrayList());  //List转Set

List list = new ArrayList(new HashSet());  //Set转List

 

2. List和数组的转换:

List<String> list = Arrays.asList("a","b", "c");  //数组转定长List,不可修改
System.out.println(list);

List list = new LinkedList(Arrays.asList(array));
  //数组转变长List,可修改[/code]
String[] arr = list.toArray(new String[0]);  //List转数组
System.out.println(Arrays.toString(arr));
  • 此时list中有三个元素,不能进行add/remove操作,否则会报“java.lang.UnsupportedOperationException”。
  • Arrays.asList()返回的是一个定长的List,不能转换为ArrayList,只能转换为AbstractList。

3. Set和数组的转换:

Set<String> set = new HashSet<String>(Arrays.asList("a","b", "c"));   //数组转Set

String[] strSet = new String[set.size()]; set.toArray(strSet);   //Set转数组 System.out.println(Arrays.toString(strSet));

4. Map转Set、List:

Map<String, String> map = new HashMap<String, String>();
map.put("name", "baoniu");
map.put("company", "taobao");

// 将键转化为Set Set<String> mapKeySet = map.keySet();
// 将值转化为Set Set<String> mapValuesSet = new HashSet<String>(map.values());
// 将值转化为List List<String> mapValuesList = new ArrayList<String>(map.values());

 

5. 使用CollectionUtils工具类:

String[] strArray = {"aaa", "bbb", "ccc"};

List strList = new ArrayList();

Set strSet = new HashSet();

CollectionUtils.addAll(strList, strArray);

CollectionUtils.addAll(strSet, strArray);

CollectionUtils.addAll()方法的实现很简单,只是循环使用了Collection的add()方法而已。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: