다크호스 프로그래머지도 2 열 집합

6631 단어
--- 자바 교육, 안 드 로 이 드 교육, iOS 교육,. Net 교육, 당신 과 의 교 류 를 기대 합 니 다 ---
1. Map 2 열 집합 에 대한 개술
Map    
 
 Map:          。            ;             。
  	Map                   . 
  
  	Map   Collection       :
  		Map       , Collection        
  		Map            , Collection                 
  		Map        , Collection    Set          
 
  		Map       , Collection    
  		
  Map       :
  	a:   
  		V put(K key,  V value):     
  	b:   
  		void clear():	  
  		V remove(Object key):	       
   c:   
   	Set> entrySet()
   	V get(Object key):				      
   	Set keySet():				         Set  
   	Collection values():			      
   d:   
   	boolean containsKey(Object key):         key
   	boolean containsValue(Object value):           
   	boolean isEmpty():				        
   e:   
   	int size():   

2.  맵 집합
   Map  : 
 
 (1).      
  		a:            
  		b:        ,      
  		c:               
 
 (2)   Set> entrySet():         Set  
    :
  		entrySet                 
  Map        :                 
  	a:   entrySet            Set  
  	b:          Set  ,           
 	c:            
 		K getKey()         。
 		V getValue()         。

코드 구현:
public class HashMapTest {
	
	public static void main(String[] args) {
		
		//  Map  
		Map hm = new HashMap();
		
		//    (     )
		hm.put("   ", "  ");
		hm.put("  ", "  ");
		hm.put("   ", "   ");
		
		//       
		//         Set  
		Set keys = hm.keySet();
		
		//  
		for (String key : keys) {
			
			//      
			String value = hm.get(key);
			
			//  
			System.out.println(key + "----" + value);
		}
		
		System.out.println("--------------------");
		//       
		//        Set  
		Set> en = hm.entrySet();
		
		//     
		for (Entry e : en) {
			
			//   
			String key = e.getKey();
			
			//   
			String value = e.getValue();
			
			//  
			System.out.println(key + "----" + value);
		}
	}
}
3.   HashMap    ,  Student  ,  String  
  	
  Student:                 ,        
  
  Map             , HashMap           ,            ,       
         hashCode  ,   equals  .
      
  HashMap           .   Map                   
 		         ,    
  		       null    null  
 Hashtable            
 		    ,   
 		     null   null  
 
 
 LinkedHashMap:           ,   ,    
  	  :       
	  	  :        
public class LinkedHashMapTest {
	
	public static void main(String[] args) {
		
		//    
		LinkedHashMap lh = new LinkedHashMap();
		
		//     :           ,   "java"        "  2"
		lh.put("hello", "  ");
		lh.put("world", "  ");
		lh.put("java", "  ");
		lh.put("java", "  2");	
		
		//       
		Set keys = lh.keySet();
		
		//  
		for (String key : keys) {
			
			//      
			String value = lh.get(key);
			
			//  
			System.out.println(key + "----" + value);
		}
	}
}

4. TreeMap: 밑 에 있 는 데이터 구 조 는 이 진 트 리 입 니 다.
  원 소 를 정렬 할 수 있 습 니 다:
  
a: 자연 정렬
  
요소 에 대한 요구 사항: 요소 가 Comparable 인 터 페 이 스 를 실현 하고 compare To 방법 을 복사 해 야 합 니 다.
   b: 비교 기 정렬
 첫 번 째 자연 정렬 법: Student Comparable 인터페이스 구현, copare To 복사 방법
public class Student implements Comparable{

	private String name ;
	
	private int age ;

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public Student() {
		super();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public int compareTo(Student o) {
		// TODO Auto-generated method stub
		//     
		int num = this.getAge() - o.getAge() ;
		
		//       
		int num2 = (num == 0) ? this.getName().compareTo(o.getName()) : num ;

		return num2;
	}	
}

 //   :
 
 public class TreeMapTest01 {
	
	public static void main(String[] args) {
		
		//  TreeMap  
		TreeMap tm =new TreeMap();
		
		//       
		Student s1 = new Student("   " , 23) ;
		Student s2 = new Student("   " , 28) ;
		Student s3 = new Student("   " , 21) ;
		Student s4 = new Student("   " , 18) ;
		Student s5 = new Student("  " , 22) ;
		Student s6 = new Student("   " , 23) ;
		
		//          
		tm.put(s1, "    ") ;
		tm.put(s2, "  ") ;
		tm.put(s3, "  ") ;
		tm.put(s4, "   ") ;
		tm.put(s5, "baby") ;
		tm.put(s6, "   ") ;
		
		//       :      
		Set keys = tm.keySet();
		
		for (Student s : keys) {
			
			//      
			String value = tm.get(s);
			
			//    
			System.out.println(s.getName() + "---" + s.getAge() + "---" + value);
		}
	}
}

두 번 째 비교 기 정렬:
//      
public class Student {
	
	private String name ;
	
	private int age ;

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public Student() {
		super();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
}


//           :
public class TreeMapTest02 {
	
	public static void main(String[] args) {
		
		//           TreeMap  
		TreeMap tm = new TreeMap(new Comparator() {

			@Override
			public int compare(Student s1, Student s2) {
				// TODO Auto-generated method stub
				//     
				int num = s1.getAge() - s2.getAge() ;
				
				//       
				int num2 = (num == 0) ? s1.getName().compareTo(s2.getName()) : num ;

				return num2;
			}
			
		});
		
		//       
		Student s1 = new Student("   " , 23) ;
		Student s2 = new Student("   " , 28) ;
		Student s3 = new Student("   " , 21) ;
		Student s4 = new Student("   " , 18) ;
		Student s5 = new Student("  " , 22) ;
		Student s6 = new Student("   " , 23) ;
		
		//          
		tm.put(s1, "    ") ;
		tm.put(s2, "  ") ;
		tm.put(s3, "  ") ;
		tm.put(s4, "   ") ;
		tm.put(s5, "baby") ;
		tm.put(s6, "   ") ;
		
		//           :      
		Set> en = tm.entrySet();
		
		for (Entry e : en) {
			
			//   
			Student s = e.getKey();
			
			//   
			String value = e.getValue();
			
			//  
			System.out.println(s.getName() + "---" + s.getAge() + "---" + value);
		}
	}
}

좋은 웹페이지 즐겨찾기