├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
1.定义
Set set = new HashSet();
List list = new ArrayList();
Map map = new HashMap();
遍历
a.
Iterator iterator = set.iterator(); while(iterator.hasNext()){ Object obj = iterator.next(); System.out.println(obj.toString()); }
b.
for(Iterator itr = list.iterator();itr.hasNext();){ List<String> strList = (List<String>) itr.next(); for(String str:strList){ System.out.println(str); } }
2.区别
a.list和set都继承了collection接口
b.list是有序的,保存的元素是可以重复的.map是无序的,元素不能重复.是key-value
c. set 是个接口,set里边的元素是不可重复的,而且没有指定的顺序,就是个集合
Set set = new HashSet(); set.add("1"); set.add("1"); List list = new ArrayList(); list.add("1"); list.add("1"); System.out.println("list size-->"+list.size());//2 System.out.println(set.size()+"--->size");//1
3.应用
private List<String> arrayList = null; private Map<String,List<String>> map = null; public Test(){ arrayList = new ArrayList<String>(); map = new HashMap<String, List<String>>(); } /** * map和list的混合的使用 * @return */ public void mapAndList(){ arrayList.add("1"); arrayList.add("2"); arrayList.add("3"); map.put("list1",arrayList); boolean b = map.containsKey("list1");//key集合中是否有"list1",true:是 boolean valueList = map.containsValue("1");//value集合中是否存在"1".true:是 //得到key的集合 Set set = map.keySet(); Iterator iterator = set.iterator(); while(iterator.hasNext()){ Object obj = iterator.next(); System.out.println(obj.toString()); } //value的集合 Collection list = map.values(); for(Iterator itr = list.iterator();itr.hasNext();){ List<String> strList = (List<String>) itr.next(); for(String str:strList){ System.out.println(str); } } }