List set和map

Collection
├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);
			}
		}
		
	}
 

猜你喜欢

转载自zhihchen.iteye.com/blog/1553012