자바 - 진급 - day 05 - 집합 진급01

55267 단어 자바 진급
자바 진급 - day 05 - 집합01
오늘 의 내용:
  • 컬 렉 션 집합
  • List
  • 데이터 구조
  • 컬 렉 션 집합
    집합 체계 구조
      a:Collection   (     )
          |_ List
            |_ ArrayList(    )
            |_ LinkedList
    
          |_ Set
            |_ HashSet(    )
            |_ LinkedHashSet
            |_ TreeSet 
    
      b:Map  (     )
        |_ HashMap(    )
        |_ LinkedHashMap
        |_ Hashtable
        	|_ Properties(    )
    

    Collection 집합 개요 및 기본 사용
    요약:
     * Collection    
                  ,       ,       Collection   
        JDK              ,          ( Set List)  
    
    
     * Collection      
        Collection col = new ArrayList<>();
    

    Collection 집합의 상용 방법 [응용]
    * boolean add(E e)          	              true                      
    * boolean remove(Object o)  	                 
    * void    clear()            	                 
    * boolean contains(Object o)	                 
    * boolean isEmpty()         	                 
    * int     size()              	     ,           
    

    Collection 집합의 옮 겨 다 니 기
  • 교체 기 소개 교체 기, 집합 전용 스 트 리밍 방식 Iterator iterator (): 이 집합 에 있 는 요소 의 교체 기 를 되 돌려 주 고 집합 한 iterator () 방법 으로 교체 기 를 얻 는 것 은 집합 한 iterator (): 방법 으로 얻 은 것 이기 때문에 집합 에 의존 하여 존재 한다 고 말 합 니 다
  • .
  • Collection 집합 달력
  • public static void main(String[] args) {
      Collection<String> coll = new ArrayList<>();
    
      coll.add("  ");
      coll.add("  ");
      coll.add("   ");
    
      Iterator<String> it = coll.iterator();
    
      while (it.hasNext()) {
          String next = it.next();
          System.out.println(next);
      }
    
      System.out.println(coll);
    }
    
    

    집합 사용 절차 도해
       :     (       )
       :     
    	   *     
           *          
       :     
    	 *    
    		 *      
    		 *   hasNext()          
    		 *   next()        
    	 *   for
    	 *   for
    

    집합 사례
  • 사례 수 요 는 학생 대상 을 저장 하 는 집합 을 만 들 고 3 명의 학생 대상 을 저장 하 며 프로그램 을 사용 하여 콘 솔 에서 이 집합 을 옮 겨 다 니 는 것 을 실현 해 야 한다
  • .
  • 사례 코드:
  • public class CollectionDemo03 {
        public static void main(String[] args) {
            //      ArrayList
            // ArrayList list = new ArrayList<>();
            Collection<Student> list = new ArrayList<>();
    
            list.add(new Student("  ",39));
            list.add(new Student("   ",40));
            list.add(new Student("   ",35));
    
        //    
            Iterator<Student> it = list.iterator();
            while (it.hasNext()) {
                Student stu = it.next();
                System.out.println(stu);
            }
        }
    }
    
    
    

    2. 리스트 집합
    List 집합 개요 와 특징
    요약: * List 집합 특징 * 질서: 저장 과 꺼 내 는 순 서 는 같 습 니 다 * 중복 가능: 중복 되 는 요 소 를 저장 할 수 있 습 니 다 * 색인 이 있 습 니 다: 정수 색인 을 제공 합 니 다.
    List (ArrayList) 집합 특유 의 방법 [응용] 예전 에 ArrayList 집합 할 때 배 웠 던 방법.
  • void add (int index, E element) 이 집합 에서 지정 한 위치 에 지정 한 요 소 를 삽입 합 니 다
  • E remove (int index) 에서 지정 한 색인 에 있 는 요 소 를 삭제 하고 삭 제 된 요 소 를 되 돌려 줍 니 다
  • E set (int index, E element) 지정 한 색인 에 있 는 요 소 를 수정 합 니 다. ` 수 정 된 요 소 를 되 돌려 줍 니 다
  • E get (int index) 지정 한 색인 에 있 는 요 소 를 되 돌려 줍 니 다
  • List 집합 사례
  • 사례 수 요 는 학생 대상 을 저장 하 는 집합 을 만 들 고 3 명의 학생 대상 을 저장 하 며 프로그램 을 사용 하여 콘 솔 에서 이 집합 을 옮 겨 다 니 는 것 을 실현 해 야 한다
  • .
  • 사례 코드:
  • public class CollectionDemo03 {
    
    	public static void main(String[] args) {
        //      
        List<Student> list = new ArrayList<>();
    
        list.add(new Student("  ",39));
        list.add(new Student("   ",40));
        list.add(new Student("   ",35));
    
    	//    
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student stu = it.next();
            System.out.println(stu);
        	}
    	}
    }
    
    

    병발 수정 이상 (발생 원인 파악)
      :
      *      
    		                ,          ConcurrentModificationException
    		
      *      
    	  *  ListIterator
          *   Iterator
          *    for  
    

    목록 교체 기 (알 아 보기)
  • ListIterator 는 List 집합 을 통 해 얻 은 listIterator () 방법 을 소개 합 니 다. 따라서 List 집합 특유 의 교체 기 는 프로그래머 가 어느 방향 으로 든 옮 겨 다 닐 수 있 도록 해 주 는 목록 교체 기 입 니 다. 교체 기간 에 목록 을 수정 하고 목록 에 있 는 교체 기의 이전 위치
  • 를 가 져 옵 니 다.
    순환 을 위 한 강화
    *   for  
    	               
    	
    *   for  
          for (            :   |     ) {
            
          }
    

    집합 사례
    * List              【  】
    
    *           
                    ,  3     ,               
    
    public class ListTest {
    	public static void main(String[] args) {
        //      ArrayList
        List<Student> list = new ArrayList<>();
    
        list.add(new Student("  ", 39));
        list.add(new Student("   ", 40));
        list.add(new Student("   ", 35));
    
        //    
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student stu = it.next();
            System.out.println(stu);
        }
    
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");
    
        //   for
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        	}
    	}
    }
    
    

    데이터 구조
      :
    
      * A: 
       	 	*   :     
       	 	    :   
      * B:  
        	*   :     
        	    :   
      * C:  
       		*   :        
      * D:  
        	*   :         
        E:         
             (  +  +   )  
    

    List 집합 하위 클래스 의 특징
  • ArrayList 집합 add ()
  • 바 텀 데이터 구조: 배열, 동적 배열 (JDK 에서 이 배열 을 유지 하고 요 소 를 삽입 하여 요 소 를 삭제 하 며 배열 의 길 이 를 확장 합 니 다)
  • 특징: 조회 가 빠 르 고 삭제 가 느리다
  • LinkedList 집합
  • 바 텀 데이터 구조: 양 방향 링크
  • 특징: 조회 가 느 리 고 삭제 가 빠르다

  • 집합 사례
    ArrayList 집합 저장 학생 대상 세 가지 방식 옮 겨 다 니 기 [응용]
  • 사례 수 요 는 학생 대상 을 저장 하 는 집합 을 만 들 고 3 명의 학생 대상 을 저장 하 며 프로그램 을 사용 하여 콘 솔 에서 이 집합 을 옮 겨 다 니 는 것 을 실현 해 야 한다
  • .
    public class ArrayListTest {
        public static void main(String[] args) {
            //      ArrayList
            // ArrayList list = new ArrayList<>();
            LinkedList<Student> list = new LinkedList<>();
    
            list.add(new Student("  ", 39));
            list.add(new Student("   ", 40));
            list.add(new Student("   ", 35));
    
            list.add(0, new Student());
            list.remove(list.size() - 1);
    
            list.removeLast();
    
            //    
            Iterator<Student> it = list.iterator();
            while (it.hasNext()) {
                Student stu = it.next();
                System.out.println(stu);
            }
    
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");
    
            //   for
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
    
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");
            //      for   |     .for +   
            for (Student student : list) {
                System.out.println(student);
            }
            // iter +   
            for (Student student : list) {
                System.out.println(student);
            }
        }
    }
    

    LinkedList 집합 특유 의 기능 [응용]
    *        
      * public void addFirst(E e)	                
      * public void addLast(E e) 	                
      * public 	E 	getFirst()                      
      * public 	E 	getLast()     	                
      * public 	E 	removeFirst()                   
      * public 	E 	removeLast()  	                
    

    숙제
    사례 1
    필요:
          ,     
    public static int listTest(Collection list,String s)
                  ,
     "a":2,"b": 2,"c" :1, "xxx":0。
    Collection list = new ArrayList<>();
    list.add("a");
    list.add("a");
    list.add("b");
    list.add("b");
    list.add("c");
    System.out.println("a:"+listTest(list, "a"));
    System.out.println("b:"+listTest(list, "b"));
    System.out.println("c:"+listTest(list, "c"));
    System.out.println("xxx:"+listTest(list, "xxx"));
    
    
    public class Demo_01 {
    
    	public static void main(String[] args) {
    
    		Collection<String> list = new ArrayList<>();
    		list.add("a");
    		list.add("a");
    		list.add("b");
    		list.add("b");
    		list.add("c");
    
    		System.out.println("a:" + listTest(list, "a"));
    		System.out.println("b:" + listTest(list, "b"));
    		System.out.println("c:" + listTest(list, "c"));
    		System.out.println("xxx:" + listTest(list, "xxx"));
    
    	}
    
    	public static int listTest(Collection<String> list, String s) {
    
    		int num = 0;
    		for (String s1 : list) {
    			if (s1.equals(s)) {
    				num ++;
    			}
    		}
    		return num;
    	}
    }
    
    

    사례 2
    필요:
           Student,        、  、  ,          ArrayList   。
    	A:         。
    	B:         ,           :    。
    

    학생 류
    public class Student {
    
    	private String name;
    	private int age;
    	private String gender;
    
    	public Student() {
    	}
    
    	public Student(String name, int age, String gender) {
    		this.name = name;
    		this.age = age;
    		this.gender = gender;
    	}
    
    	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 String getGender() {
    		return gender;
    	}
    
    	public void setGender(String gender) {
    		this.gender = gender;
    	}
    
    	@Override
    	public String toString() {
    		return "Student{" +
    				"name='" + name + '\'' +
    				", age=" + age +
    				", gender='" + gender + '\'' +
    				'}';
    	}
    	
    }
    
    

    테스트 클래스
    public class CollectionDemo {
    
    	public static void main(String[] args) {
    
    		Student student1 = new Student("  ", 19, " ");
    		Student student2 = new Student("  ", 29, " ");
    		Student student3 = new Student("  ", 29, " ");
    
    		List<Student> list = new ArrayList<>();
    
    		list.add(student1);
    		list.add(student2);
    		list.add(student3);
    
    		Iterator<Student> iterator = list.iterator();
    		int maxAge = 0;
    
    		while (iterator.hasNext()) {
    			Student next = iterator.next();
    			if (next.getAge() > maxAge) {
    				maxAge = next.getAge();
    			}
    				System.out.println(next);
    		}
    
    		System.out.println("~~~~~~~~~~~~~~");
    
    		for (Student student : list) {
    			if (student.getAge() == maxAge) {
    				student.setName("    ");
    			}
    			System.out.println(student);
    		}
    	}
    }
    
    
    

    사례 3
    필요:
      List      10            ,     
    
    
    public class ListTest {
    
    	public static void main(String[] args) {
    
    		Random random = new Random();
    		Set<Integer> set = new ConcurrentSkipListSet<>();	//Set             
    
    		while (set.size() < 10) {
    			set.add(random.nextInt(20));
    		}
    
    		List<Integer> list = new ArrayList<>(set);
    
    		for (Integer integer : list) {
    			System.out.println(integer);
    		}
    	}
    
    
    }
    

    사례 3
    필요:
      List      10            ,     
    
    public class ListTest {
    
    	public static void main(String[] args) {
    
    		Random random = new Random();
    		Set<Integer> set = new ConcurrentSkipListSet<>();	//Set             
    
    		while (set.size() < 10) {
    			set.add(random.nextInt(20));
    		}
    
    		List<Integer> list = new ArrayList<>(set);
    
    		for (Integer integer : list) {
    			System.out.println(integer);
    		}
    	}
    }
    

    좋은 웹페이지 즐겨찾기