一、MAP
1、Map和HashMap
Map是一个接口,HashMap是Map的一个实现类,所以可以如下定义:
Mapm = new HashMap ();HashMap m = new HashMap ();LinkedHashMap linkedHashMap = new LinkedHashMap ();
不能如下定义,因为接口是不能实例化的:
Mapm = new Map ();HashMap m = new Map ();
2、Map的遍历可参考:
二、List
1、List和ArrayList
List是一个接口,ArrayList是List的一个实现类,所以可以如下定义:
Listm = new ArrayList ();ArrayList m = new ArrayList ();LinkedList list = new LinkedList ();
2、List的合并可以用addAll函数。
3、List去重。
(1)、不在意顺序。
public static List removeDuplicate(List list) { Set set = new HashSet(); List newList = new ArrayList(); set.addAll(list); newList.addAll(set); return newList;}
(2)、保持顺序(代码来自:)
public static List removeDuplicateWithOrder(List list) { Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object element = iter.next(); if (set.add(element)) newList.add(element); } return newList;}
4、List中存放自定义对象时排序可参考:
排序示例:
// 按 batch 从旧到新排序Collections.sort(xObjList, new Comparator() { @Override public int compare(XXXXObject obj1, XXXXObject obj2) { int i = obj1.data.get("batch").compareTo(obj2.data.get("batch")); if ( i > 0 ) { return 1; } else { return -1; } }});
*** ***