数组转化为 list, set
使用 JDK 的 Collections 或者 Apache Jakarta Commons Collections使用时导入如下
org.apache.commons.collections.CollectionUtils
具体示例代码:
String[] stringArray = {"dd", "aa", "ww", "84", "84"};
List arraylist = new ArrayList();
Set setlist = new HashSet();
Collections.addAll(arraylist, stringArray);
Collections.addAll(setlist, stringArray);
数组转 list 使用JDK 自带 Arrays.asList 但这样的转换出来的只能时引用类型的数组,基本数据类型的数组不可以,同时转换出来的对象不能执行增删操作;
Collection 转数组
Collection 下的 子类 List , Set 均带有方法 toArray
Map 转 Collection
通过使用 Map的 values() 方法,这样获取的是map 中所有的 value
示例代码如下:
Map map = new HashMap();
map.put(1, 222);
map.put(2, 223);
map.put(3, 224);
Collection values = map.values();
此时还不能直接使用,可以调用 Collection 的 toArray 方法转为 Object数组
Object[] objects = values.toArray();
此时再对数组进行Collection.addAll 或者Stream 或一般for 转为一般的list 集合即可
例如:
List arraylist = new ArrayList();
Map map = new HashMap();
map.put(1, 222);
map.put(2, 223);
map.put(3, 224);
Collection values = map.values();
Object[] objects2 = values.toArray();
Collections.addAll(arraylist, objects2);
System.out.println(arraylist);
输出结果如下:
[222, 223, 224]
list set 互相转换
直接使用二者的构造方法放入另一个即可完成构造
示例代码如下:
// 数组以及 list set 定义
String[] stringArray = {"dd", "aa", "ww", "84", "84"};
List arraylist = new ArrayList();
Set setlist = new HashSet();
Collections.addAll(arraylist, stringArray);
Collections.addAll(setlist, stringArray);
System.out.println(arraylist);
System.out.println(setlist);
// 使用构造方法直接转换list 以及 set
ArrayList arrayList = new ArrayList<>(setlist);
arrayList.add("84");
arrayList.add("84");
HashSet hashSet = new HashSet<>(arraylist);
System.out.println(arrayList);
System.out.println(hashSet);
结果如下:
[dd, aa, ww, 84, 84]
[dd, aa, ww, 84]
[dd, aa, ww, 84, 84, 84]
[dd, aa, ww, 84]