자바-set 의 응용

72192 단어 자바필기 하 다.
Set
Set 인터페이스의 특징
  • 1-무질서(저장 과 읽 기 순서 가 다 를 수 있 음)
  • 2-중복 을 허용 하지 않 으 며 원소 유일 을 요구 합 니 다
  • 3-색인 없 음
  • HashSet 저장 문자열 을 사용 하여 옮 겨 다 니 기
    package com.it01;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    /*
     * 	  HashSet        	
     */
    public class HashSetDemo {
    
    	public static void main(String[] args) {
    		//      
    		//HashSet hs = new HashSet();
    		Set<String> hs = new HashSet<String>();//           (  )
    		
    		
    		//    
    		hs.add("hello");
    		hs.add("world");
    		hs.add("java");
    		
    		//  
    		//         
    		method1(hs);
    		
    		//        
    		method2(hs);
    		
    		//       for
    		method3(hs);
    		
    	}
    
    	private static void method3(Set<String> hs) {
    		//  for
    		for (String s : hs) {
    			System.out.println(s);
    		}
    	}
    
    	private static void method2(Set<String> hs) {
    		//   
    		Iterator<String> it = hs.iterator();
    		while(it.hasNext()) {
    			System.out.println(it.next());
    		}
    	}
    
    	private static void method1(Set<String> hs) {
    		//   
    		Object[] obj = hs.toArray();
    		for (int i =0;i<obj.length;i++) {
    			System.out.println(obj[i]);
    		}
    	}
    
    }
    
    

    사용자 정의 대상 을 HashSet 으로 저장 하고 옮 겨 다 니 기
    package com.it01;
    
    import java.util.HashSet;
    
    /*
     * 	  HashSet          
     * 
     * 	        :
     * 		HashSet add()  ,                         hash   
     * 		  hash    ,         
     * 		     ,         equals        ,        
     */
    public class HashSetDemo2 {
    
    	public static void main(String[] args) {
    		
    		//      
    		HashSet<Student> hs = new HashSet<Student>();
    		//      
    		Student s1 = new Student("zhansan",18);
    		Student s2 = new Student("wangwu",20);
    		
    		
    		Student s3 = new Student("wangwu",20);
    		//      
    		hs.add(s1);
    		hs.add(s2);
    		hs.add(s3);
    		//      
    		for (Student stu : hs) {
    			//  toString    
    			System.out.println(stu);
    		}
    	}
    
    }
    
    class Student{
    	String name;
    	int age;
    	public Student(String name, int age) {
    		//super();
    		this.name = name;
    		this.age = age;
    	}
    	@Override
    	public String toString() {
    		return "Student :name=" + name + ", age=" + age + ".";
    	}
    	
    	@Override
    	public boolean equals(Object obj) {
    		Student s = (Student)obj;//    
    		if (this.age!=s.age) {
    			return false;
    		}
    		if (!this.name.equals(s.name)) {
    			return false;
    		}
    		return true;
    	}
    	
    	@Override
    	public int hashCode() {
    		return 1;
    	}
    	
    	
    }
    

    hashCode 방법 과 equals 방법 을 다시 써 서 HashSet 저장 소 사용자 정의 대상 을 다시 만 듭 니 다.
    package com.it01;
    
    import java.util.HashSet;
    
    /*
     * 	  HashSet          
     * 
     * 	        :
     * 		HashSet add()  ,                         hash   
     * 		  hash    ,         
     * 		     ,         equals        ,        
     */
    public class HashSetDemo2 {
    
    	public static void main(String[] args) {
    		
    		//      
    		HashSet<Student> hs = new HashSet<Student>();
    		//      
    		Student s1 = new Student("zhansan",18);
    		Student s2 = new Student("wangwu",20);
    		
    		
    		Student s3 = new Student("wangwu",20);
    		//      
    		hs.add(s1);
    		hs.add(s2);
    		hs.add(s3);
    		//      
    		for (Student stu : hs) {
    			//  toString    
    			System.out.println(stu);
    		}
    	}
    
    }
    
    class Student{
    	String name;
    	int age;
    	public Student(String name, int age) {
    		//super();
    		this.name = name;
    		this.age = age;
    	}
    	@Override
    	public String toString() {
    		return "Student :name=" + name + ", age=" + age + ".";
    	}
    	
    	@Override
    	public boolean equals(Object obj) {
    		Student s = (Student)obj;//    
    		if (this.age!=s.age) {
    			return false;
    		}
    		if (!this.name.equals(s.name)) {
    			return false;
    		}
    		return true;
    	}
    	
    	@Override
    	public int hashCode() {
    		return 1;
    	}
    	
    	
    }
    
    package com.it02;
    
    
    
    public class Person {
    	String name;
    	int age;
    	
    	
    	
    
    	public Person(String name, int age) {
    		// TODO Auto-generated constructor stub
    		this.name = name;
    		this.age = age;
    	}
    
    
    
    	@Override
    	public String toString() {
    		return "Person [name=" + name + ", age=" + age + "]";
    	}
    
    
    
    	@Override
    	public int hashCode() {
    		final int prime = 31;
    		int result = 1;
    		result = prime * result + age;
    		result = prime * result + ((name == null) ? 0 : name.hashCode());
    		return result;
    	}
    
    
    
    	@Override
    	public boolean equals(Object obj) {
    		if (this == obj)
    			return true;
    		if (obj == null)
    			return false;
    		if (getClass() != obj.getClass())
    			return false;
    		Person other = (Person) obj;
    		if (age != other.age)
    			return false;
    		if (name == null) {
    			if (other.name != null)
    				return false;
    		} else if (!name.equals(other.name))
    			return false;
    		return true;
    	}
    	
    	
    //	@Override
    //	public int hashCode() {
    //		/*
    //		 *  hashcode    1 ,     hash      
    //		 *               ,         hash equals     
    //		 *                 ,   hash     ,         equals     
    //		 *              
    //		 * 
    //		 *    hash        
    //		 *  hashCode            ,           ,          hashCode         
    //		 * boolean       
    //		 */
    //		return age+name.hashCode();
    //	}
    //   
    //	
    //	@Override
    //	public boolean equals(Object obj) {
    //		
    //		if (this==obj) {
    //			return true;
    //		}
    //		
    //		if (this.getClass()!=obj.getClass()) {
    //			return false;
    //		}
    //		Person s = (Person)obj;//    
    //		if (this.age!=s.age) {
    //			return false;
    //		}
    //		if (!this.name.equals(s.name)) {
    //			return false;
    //		}
    //		return true;
    //	}
    	
    	//       
    	
    	
    	
    }
    
    
    package com.it02;
    
    import java.util.HashSet;
    
    
    
    public class HashSetDemo3 {
    	public static void main(String[] args) {
    		HashSet<Person> hs = new HashSet<Person>();
    		
    		Person p1 = new Person("zhansan",25);
    		Person p2 = new Person("lisi",20);
    		Person p3 = new Person("lisi",20);
    		
    		hs.add(p1);
    		hs.add(p2);
    		hs.add(p3);
    		
    		//      
    		for (Person p : hs) {
    			//  toString    
    			System.out.println(p);
    		}
    		
    	}
    }
    
    

    Collections 도구 클래스
    Collections 와 Collection 의 차이
  • Collection 시 집합 체계의 최고 층 은 집합 체계의 공통성
  • 을 포함한다.
  • Collections 는 도구 류,static 수식 방법 으로 Collection
  • 을 조작 하 는 데 사용 된다.
    
    package com.it03;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    /*
     * 	Collections:
     * 	Collections Collection   
     * 			Collection         ,          
     * 			Collections      ,static    ,    Collection
     * 
     * 	
     */
    public class CollectionsDemo {
    
    	public static void main(String[] args) {
    		//method1();
    		
    		//method2();
    		
    		//method3();
    		
    		//method4();
    		
    		//method5();
    		
    		//method6();
    		
    		method7();
    		
    	}
    
    	private static void method7() {
    		//static void swap(List list, int i, int j)               
    		List<Integer> list = new ArrayList<Integer>();
    		list.add(1);
    		list.add(6);
    		
    		Collections.swap(list, 0, 1);
    		System.out.println(list);
    	}
    
    	private static void method6() {
    		//static void sort(List list)                
    		List<Integer> list = new ArrayList<Integer>();
    		list.add(1);
    		list.add(6);
    		list.add(3);
    		list.add(5);
    		list.add(4);
    		list.add(2);
    		
    		Collections.sort(list);
    		System.out.println(list);
    	}
    
    	private static void method5() {
    		//static void shuffle(List list)    
    		List<String> list = new ArrayList<String>();
    		list.add("hello");
    		list.add("world");
    		list.add("java");
    		
    		Collections.shuffle(list);
    		System.out.println(list);
    	}
    
    	private static void method4() {
    		//static void reverse(List list)  
    		List<String> list = new ArrayList<String>();
    		list.add("hello");
    		list.add("world");
    		list.add("java");
    		
    		
    		Collections.reverse(list);
    		System.out.println(list);
    	}
    
    	private static void method3() {
    		//static void fill(List list, T obj)                  
    		List<String> list = new ArrayList<String>();
    		list.add("hello");
    		list.add("world");
    		list.add("java");
    		
    		Collections.fill(list, "android");
    		System.out.println(list);
    	}
    
    	private static void method2() {
    		//static  void copy(List dest, List src)  
    		//                 
    		List<String> list1 = new ArrayList<String>();
    		List<String> list2 = new ArrayList<String>();
    		list1.add("hello");
    		list1.add("world");
    		list1.add("java");
    		
    		list2.add("");
    		list2.add("");
    		list2.add("");
    		list2.add("");
    		
    		
    		Collections.copy(list2, list1);
    		System.out.println(list2);
    	}
    
    	private static void method1() {
    		// static int binarySearch(List list, Object key)                       
    		List<Integer> list = new ArrayList<Integer>();
    		list.add(1);
    		list.add(2);
    		list.add(3);
    		list.add(4);
    //		list.add(5);
    //		list.add(6);
    		
    		int index = Collections.binarySearch(list, 4);
    		System.out.println(index);
    	}
    
    }
    
    

    테스트:시 뮬 레이 션
    package com.it03;
    
    import java.util.ArrayList;
    import java.util.Collections;
    
    /*
     * 	  :       
     * 	
     * 	
     */
    public class CollectionsTest {
    
    	public static void main(String[] args) {
    		//  54  
    		String[] arr = {"  ","  ","  ","  "};
    		String[] arr2 = {"A","1","2","3","4","5","6","7","8","9","10","J","Q","k"};
    		ArrayList<String> box = new ArrayList<String>();
    		
    		//   
    		
    		for (int i =0;i<arr.length;i++) {
    			//       
    			for(int j=0;j<arr2.length;j++) {
    				//      
    				box.add(arr[i]+arr2[j]);
    			}
    		}
    		
    		box.add("  ");
    		box.add("  ");
    		
    		//  
    		Collections.shuffle(box);
    		
    		//  
    		ArrayList<String>    = new ArrayList<String>();
    		ArrayList<String>    = new ArrayList<String>();
    		ArrayList<String>    = new ArrayList<String>();
    		
    		//    
    		for(int i=0;i<box.size()-3;i++) {
    			/*
    			 *  3  
    			 */
    			
    			if(i%3==0) {
    				  .add(box.get(i));
    			}else if (i%3==1) {
    				  .add(box.get(i));
    			}else if (i%3==2) {
    				  .add(box.get(i));
    			}
    		
    		}
    		System.out.println("  "+  );
    		System.out.println("  "+  );
    		System.out.println("  "+  );
    		
    		//  
    		System.out.println(box.get(box.size()-1));
    		System.out.println(box.get(box.size()-2));
    		System.out.println(box.get(box.size()-3));
    		
    	}
    
    }
    
    

    좋은 웹페이지 즐겨찾기