Array与List的那些事

Java Api中提供了数组对List的转换方法

String[] tmp = {"a","b","c","d"};

List<String> list = Arrays.asList(tmp);

list.clear() //抛出java.lang.UnsupportedOperationException异常

Arrays的asList实现方式是使用参数引用的数组的大小来new的一个ArrayList,对返回列表的更改会“直写”到数组,而数组没有clear,add,remove等方法。

可以使用CollectionUtils(org.apache.commons.collections.CollectionUtils)进行深度转换

List list= new ArrayList(); CollectionUtils.addAll(list, tmp);

随后对List进行去重操作,方法有多种,这里使用HashSet来实现

public List<String> removeDuplicate(List<String> list) {
    HashSet<String> hs = new HashSet<String>(list);
    list.clear();
    list.addAll(hs);
    return list;
}