秋风问答网秋风问答网

java set转list,数组与list的转换(javaset转list集合)

面试的时候,经常会问到数据结构,比如数据和链表的区别,比如list如何去重,这就涉及到java 集合类的一些常用方法,数组和list和set如何互相转换

来自http://www.sohu.com/a/274265504_445013


某天读zookeeper的源码(zookeeper.java)时发现的,平时没有怎么注意:

 private final ZKWatchManager watchManager;
 List<String> getDataWatches() {
 synchronized(watchManager.dataWatches) {
 List<String> rc = new ArrayList<String>(watchManager.dataWatches.keySet());
 return rc;
 }
 }
 List<String> getExistWatches() {
 synchronized(watchManager.existWatches) {
 List<String> rc = new ArrayList<String>(watchManager.existWatches.keySet());
 return rc;
 }
 }
 List<String> getChildWatches() {
 synchronized(watchManager.childWatches) {
 List<String> rc = new ArrayList<String>(watchManager.childWatches.keySet());
 return rc;
 }
 }

上例中,set转list,直接将set扔入list就可以了,相反,list转set也可以这样做:

Set result = new HashSet(list);

读到这里,就想到其它的是怎么转换的呢?

数组-->list转换

String[] userid = {"aa","bb","cc"};
List<String> userList = new ArrayList<String>();
Collections.addAll(userList, userid);

数组-->list 转换

String[] userid = {"aa","bb","cc"};
List<String> userList = Arrays.asList(userid);
另:Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作。
List list = new ArrayList(Arrays.asList(userid));这样操作就可以了。

list-->数组转换

List<String> strList = new ArrayList<String>();
strList.add("aa");
strList.add("bb");
Object[] objs = strList.toArray();

参考资料:

【1】http://jingyan.baidu.com/article/86f4a73e607f2937d7526972.html

【2】https://github.com/apache/zookeeper

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

回到首页 发表评论 回到顶部