Collection
-
Arrays.asLis():
取交集的方法intersection和retainAll的差别
要注意的是它们返回类型是不一样的,intersection返回的是一个新的List集合,而retainAll返回是Bollean类型就说明retainAll方法是对原有集合进行处理再返回原有集合,会改变原有集合中的内容
1:从性能角度来考虑的话,List自带会高点,因为它不用再创建新的集合,2:需要注意的是,因为retainAll因为会改变原有集合,所以该集合需要多次使用就不适合用retainAll
注意:Arrays.asList将数据转集合不能进行add和remove操作
原因:调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList()返回的是Arrays的内部类ArrayList,而不是java.util.ArrayList.Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove,add
等方法AbstractList中是默认throw UnsupportedOperationException而且不做任何操作,java.util.ArrayList重新了这些方法而Arrays的内部类没有重新,所以会抛出异常
所以正确做法如下:
String[] array = {"1","2","3"}; List<String> list = Arrays.asList(array); List arrList = new ArrayList(list); arrList.add("4");
-
String和List互转:
① List转String:
String aa = StringUtils.join(Lists.newArrayList("z", "x"), ",");
② String转List:
String[] mis = "nini, momo, duoduo".split(","); List<String> misList = new ArrayList<>(Arrays.asList(mis));