1.关于list.isEmpty
只要有list.add操作。即使是list.add("") (1次或若干次),list.isEmpty也是返回false; 如果你仅仅是声明一个List,而没有add操作,则list.size=0 并且list.isEmpty才会返回true;
2.list转Array(数组)
拿List<String>集合转String[]数组来说,你不能直接用String[] strs = (String[])list.toArray()。虽然这样做,编译的时候可以通过,但是运行的时候会报异常:
[Ljava.lang.Object; cannot be cast to [Ljava.lang.String; 所以最好这样做:String[] strs = list.toArray(new String[list.size()]);
3.Array转List
最常见的1种情况是:String[]转List<String> list,而String[]又来源于1个字符串根据","分隔。问题来了,当该字符串是空串的时候,即使执行split(",")方法,也不会报错。如果你
直接把空串split操作后的String数组转成List<String>,则该集合的size为1,而不为0(这也是我栽了跟头的地方,)
如运行以下代码,打印结果会是:1 false
String str = ""; String[] strs = str.split(","); List<String> list = Arrays.asList(strs); System.out.println(list.size()); System.out.println(list.isEmpty());
ps:我之前一直以为是 0 true。。。。。)
而且即使当该字符串为不为空串时,split得到的就是1个元素为他的数组,该数组长度为1
String str = "sd"; String[] strs = str.split(","); System.out.println(Arrays.toString(strs));//注意打印数组元素的方法,不能直接打印他的变量哈
打印结果为:[sd]
更为合理的改动是:
List<String> list = null; if(!str.equals("")) { String[] ids = appIps.split(","); list = Arrays.asList(ids);//用户传过来的,所选择的集合 }else{ list = new ArrayList(); }
4.数组和ibatis相关:sql语句是in(..) 括号里期待后台传的是一个形如'str1', 'str2', 'str3',……的字符串,我们可以给它直接传一个字符串数组而非字符串集合的toStirng格式
5.两个个集合取交集、差集
java.util.List<String> l = new ArrayList<String>(); l.add("server7"); l.add("server2"); l.add("server9"); l.add("server62"); l.add("server23"); List<String> tmp = new ArrayList<String>(); tmp.addAll(l); java.util.List<String> l2 = new ArrayList<String>(); l2.add("server23"); l2.add("server7"); l2.add("server6"); l2.add("server9"); boolean bool1 = l.containsAll(l2); boolean bool2 = l2.containsAll(l); tmp.retainAll(l2);//取交集得到tmp // System.out.println(bool2 && bool1); l2.removeAll(tmp); System.out.println("list和list2的交集:" + tmp.toString()); l.removeAll(tmp); System.out.println("list里有而list2里沒有的:" + l.toString()); System.out.println("list2里有而list里沒有的:" + l2.toString());
打印结果如下:
list和list2的交集:[server7, server9, server23]
list里有而list2里沒有的:[server2, server62]
list2里有而list里沒有的:[server6]
6.比较两个集合元素是否一样?
list1.containsAll(list2) && list2.containsAll(list1);
返回true表示元素一模一样,false则表示不一样
7.如果由Arrays.asList(array)得到的list,再去执行add remove retainAll removeAll remove contains等操作,编译时可以通过,运行时却会出现异常如下:
java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)
at java.util.AbstractList$Itr.remove(AbstractList.java:374)
at java.util.AbstractCollection.removeAll(AbstractCollection.java:373)
Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method
在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,
但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。
解决办法:将Arrays$ArrayList转成ArrayList即可
List<String> list2 = Arrays.asList(ids); List<String> list = new ArrayList(list2);
再用list去执行add remove retainAll removeAll remove contains等操作即可。
=============== 持续补充中。。。 ======================
相关推荐
关于LIstCtrl的一些总结,里面知识还算全。。
主要介绍了C++ STL list 遍历删除出错解决方案的相关资料,这里对出错进行分析,并给出正确的解决方法,需要的朋友可以参考下
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是...
c++ stl list总结
找了一些关于checkboxList控件的常用用法 添加项,选择项,删除项的等17种常用的方法。 希望对大家有用
本文档对C#的List,ArrayList,LinkedList的各种用法作了总结,并附有完整的测试源码
里面包含C# list 里面各种linq 方法使用
测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar
list to list 将list内容移到另一个list
1\在开发项目时,使用到了 listcontrol 控件,就一些问题,做一下备注,以备以后使用 (1) 给list项目 删除所有的项目 DeleteAllItems(); (2) 给list项目 添加一个列 .InsertColumn(0, _T(“编号”)); (3)给list a项目 ...
list嵌套list,可以直接运行,其实就是事件拦截
C语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言...
MFC控件:listctrl使用方法总结
关于Java中List对象的分页思想-按10个或者n个数对list进行分组
判断list相等 注意:@{list}是robot提供的语法,python并没有@{},只有${},所以要⽐较两个@{list},需要把@{list},直接写成英⽂dollar ${list}进 ⾏对⽐ ⽰例: @{list} Create List lilei hanmeimei liming ...
List转换为List, List转换为List<Object> list转化为 JsonArray ,list转换JsonArray
里面是我做listcontrol时使用的资料,呵呵,希望对大家有用
java 数组转list list转数组 list数组互转 java8 代码示例
Gson解析(List和Map)格式json数据 - CSDN博客原创2013年11月23日 21:54:46Gson解析(List和Map)格式json数据天
1.关于list容器 list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的...