java中 set,list,array(集合与数组)相互转换

Posted 有梦就能实现

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 set,list,array(集合与数组)相互转换相关的知识,希望对你有一定的参考价值。

 
复制代码
public static Object[] List2Array(List<Object> oList) {
Object[] oArray = oList.toArray(new Object[] {});
// TODO 需要在用到的时候另外写方法,不支持泛型的Array.
return oArray;
}

public static Object[] Set2Array(Set<Object> oSet) {
Object[] oArray = oSet.toArray(new Object[] {});
// TODO 需要在用到的时候另外写方法,不支持泛型的Array.
return oArray;
}

public static <T extends Object> List<T> Set2List(Set<T> oSet) {
List<T> tList = new ArrayList<T>(oSet);
// TODO 需要在用到的时候另外写构造,根据需要生成List的对应子类。
return tList;
}

public static <T extends Object> List<T> Array2List(T[] tArray) {
List<T> tList = Arrays.asList(tArray);
// TODO 单纯的asList()返回的tList无法add(),remove(),clear()等一些影响集合个数的操作,
// 因为Arrays$ArrayList和java.util.ArrayList一样,都是继承AbstractList,
// 但是Arrays$ArrayList没有override这些方法,而java.util.ArrayList实现了。
// TODO 建议使用List的子类做返回,而不是Arrays$ArrayList。根据需要吧。如下行注释:
// List<T> tList = new ArrayList<T>(Arrays.asList(tArray));
return tList;
}

public static <T extends Object> Set<T> List2Set(List<T> tList) {
Set<T> tSet = new HashSet<T>(tList);
//TODO 具体实现看需求转换成不同的Set的子类。
return tSet;
}

public static <T extends Object> Set<T> Array2Set(T[] tArray) {
Set<T> tSet = new HashSet<T>(Arrays.asList(tArray));
// TODO 没有一步到位的方法,根据具体的作用,选择合适的Set的子类来转换。
return tSet;
}

以上是关于java中 set,list,array(集合与数组)相互转换的主要内容,如果未能解决你的问题,请参考以下文章

Java-杂项:Java数组Array和集合ListSetMap

史上最全Java集合体系ArrayMap以及Set和List详解

每天学一点 Kotlin -- 集合:Array 数组

day17 java 语言中的---list集合

kotlin数组和集合

Java集合类 课后练习