3.4 자바 의 집합 프레임 워 크 (상) (상용 도구 류)

12057 단어
1. 자바 의 집합 프레임 워 크 개술
집합 프레임,
  • 개념 과 작용 자바 의 집합 류: 일종 의 도구 류 로 용기 와 같이 임의의 수량 을 저장 하 는 공 통 된 속성 을 가 진 대상 집합 작용: 1. 유형의 내부 에서 데 이 터 를 조직 한다.2. 대량의 항목 을 쉽 고 빠르게 검색 합 니 다.3. 일부 집합 인 터 페 이 스 는 일련의 질서 있 는 요 소 를 제공 하고 배열 중간 에 관련 요 소 를 신속하게 삽입 하거나 삭제 할 수 있다.4. 어떤 집합 인 터 페 이 스 는 매 핑 관 계 를 제공 합 니 다. 키워드 key 를 통 해 대응 하 는 유일한 대상 을 신속하게 찾 을 수 있 습 니 다. 이 키 워드 는 임의의 유형 과 배열 의 대비 일 수 있 습 니 다. 왜 집합 을 선택 하 는 지 배열 1, 배열 의 길이 가 고정 되 지 않 고 집합 길 이 는 가 변 2, 배열 은 아래 표 시 를 통 해 요소 에 만 접근 할 수 있 고 유형 은 고정 되 어 있 습 니 다.어떤 집합 은 임의의 유형 을 통 해 비 치 는 구체 적 인 대상 을 찾 을 수 있다
  • 시스템 구조 자바 집합 프레임 워 크 1, 컬 렉 션 목록 시퀀스: 저장 구조 배열 질서, 중복 가능 - ArrayList, LinkedList 큐 큐 큐 큐 큐: 저장 구조 배열 질서, 중복 가능 - LinkedList 집합: 저장 구조 배열 무질서, 중복 불가 - HashSet 2, Map - HashMap
  • 실제 응용
  • 2. Collection 인터페이스 & List 인터페이스 안내
  • Collection 인 터 페 이 스 는 List, Set, Queue 인터페이스의 부모 인터페이스 로 List, Set, Queue 를 조작 할 수 있 는 방법 을 정의 했다. 1. List 는 요소 가 질서 가 있 고 중복 할 수 있 는 집합 으로 서열 2, List 라 고 불 리 며 모든 요소 가 삽 입 된 위 치 를 정확하게 제어 하거나 특정한 위치 요소 3, Array List - 배열 서열 을 삭제 할 수 있다.List 의 중요 한 실현 유형 4. Array List 바 텀 은 배열 에 의 해 이 루어 진다
  • .
    3. 학생 선택 과목 - 학생 유형 과 과정 유형 만 들 기
  • 실현 기능 - 모 의 학생 수강 신청 기능
  • 선택 과정 (집합 에 과정 추가)
  • 선택 한 과정 삭제 (집합 중의 요소 삭제)
  • 선택 한 과정 보기
  • 선택 한 과정 수정
  • package com.imooc.student;
    
    import java.util.HashSet;
    import java.util.Set;
    /**
     *    
     * @author bzz
     *
     */
    public class Student {
        public String id;
        public String name;
        public Set courses;      //      
        public Student(String id,String name){
            this.id=id;
            this.name=name;
            this.courses=new HashSet();
        }
    }
    
    package com.imooc.student;
    /**
     *    
     * @author bzz
     *
     */
    public class Course {
        public String id;
        /**
         *                
         * private String id;
         * public String getId(){
         *      return id;
         * public void setId(String id){
         *      this.id=id;
         * }
         */
        
        public String name;
        public Course(String id,String name){
            this.id=id;
            this.name=name;
        }
    }
    

    4. 학생 수강 신청 - 추가 과정
    package com.imooc.student;
    
    import java.util.Arrays;
    import java.util.List;
    import java.util.ArrayList;
    /**
     *      
     * @author bzz
     *
     */
    public class ListTest {
        public List coursesToSelect;//         List
        public ListTest(){
            this.coursesToSelect=new ArrayList();
        }
        //    courseToSelect       
    
        public void testAdd(){
            //        ,     add,       List 
    
            Course cr1=new Course("1","    ");
            coursesToSelect.add(cr1);
            //         Object  ,         
            Course temp=(Course) coursesToSelect.get(0);
            System.out.println("     :"+temp.id+":"+temp.name);
    
            Course cr2=new Course("2","C  ");
            coursesToSelect.add(0,cr2);
            Course temp2=(Course) coursesToSelect.get(0);
            System.out.println("     :"+temp2.id+":"+temp2.name);
            
    //                     
    //      Course cr3=new Course("3","test");
    //      coursesToSelect.add(4,cr3);  
            
            Course[] course={new Course("3","    "),new Course("4","    ")};
            coursesToSelect.addAll(Arrays.asList(course));
            Course temp3=(Course) coursesToSelect.get(2);
            Course temp4=(Course) coursesToSelect.get(3);
            System.out.println("       "+temp3.id+":"+temp3.name+temp4.id+":"+temp4.name);
            
            Course[] course2={new Course("5","    "),new Course("5","    ")};
            coursesToSelect.addAll(2,Arrays.asList(course2));
            Course temp5=(Course) coursesToSelect.get(2);
            Course temp6=(Course) coursesToSelect.get(3);
            System.out.println("       "+temp5.id+":"+temp5.name+temp6.id+":"+temp6.name);
        }
        
        public static void main(String[] args){
            ListTest lt=new ListTest();
            lt.testAdd();
        }
    }
    
    

    5. 학생 수강 신청 - 과정 조회
        /**
         *   List      
         * @param args
         */
        public void testGet(){
            int size=coursesToSelect.size();
            System.out.println("       :");
            for(int i=0;i

    6. 학생 수강 신청 - 수업 수정
    /**
         *   List    
         */
        public void testModify(){
            coursesToSelect.set(4,new Course("7","  "));
        }
    

    7. 학생 수강 신청 - 수업 삭제
    public void testRemove(){
            //    1
    //      Course cr=(Course)coursesToSelect.get(4);
    //      System.out.println("    :"+cr.id+":"+cr.name+"      ");
    //      coursesToSelect.remove(cr);
            
            //    2
    //      System.out.println("     4     ");
    //      coursesToSelect.remove(4);
            
            //    3
            System.out.println("     4 5     ");
            Course[] courses={(Course)coursesToSelect.get(4),(Course)coursesToSelect.get(5)};
            coursesToSelect.removeAll(Arrays.asList(courses));
            System.out.println("      !");
            testForEach();
        }
    

    8. 학생 수강 신청 - 응용 범 형 관리 과정
  • 집합 중의 요 소 는 임의의 유형의 대상 (대상 참조) 일 수 있 습 니 다. 특정한 대상 을 집합 에 넣 으 면 그의 유형 을 무시 하고 object 로 처리 합 니 다
  • 범 형 은 특정한 집합 에 특정 유형 만 저장 할 수 있 는 대상 이 컴 파일 기간 에 유형 검 사 를 하도록 규정 한 것 이다
  • .
    package student;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestGeneric {
        /**
         *     ——Course, List    ,            
         */
        public List courses;
        
        public TestGeneric() {
            this.courses = new ArrayList();//        courses  
        }
        
        /**
         *     
         */
        public void testAdd() {
            Course cr1 = new Course("1","    ");
            courses.add(cr1);
            //     ,                     ,     !
    //      courses.add("            ??");
            Course cr2 = new Course("2","Java  ");
            courses.add(cr2);
        }
        
        /**
         *       
         *     object         course  
         */
        public void testForEach() {
            for (Course cr : courses) {
                System.out.println(cr.id + ":" + cr.name);
            }
        }
        
        /**
         *             、      
         *                    
         */
        public void testChild() {
            ChildCourse ccr = new ChildCourse();
            ccr.id = "3";
            ccr.name = "            ~~";
            courses.add(ccr);
        }
        
        /**
         *           
         */
        public void testBasicType() {
            List list = new ArrayList();
            list.add(1);
            System.out.println("               !" + list.get(0));
        }
        /*
         *                   ,       
         *          (Interger、Long...)           
         */
        
        public static void main(String[] args) {
            TestGeneric tg = new TestGeneric();
            tg.testAdd();
            tg.testForEach();
            tg.testChild();
            tg.testForEach();
            tg.testBasicType();
        }
    }
    

    범 형 집합 에 범 형 유형, 범 형 하위 유형 1, 범 형 집합 에 저 장 된 한정 유형 은 기본 데이터 형식 을 사용 할 수 없고 인용 유형 만 사용 할 수 있 습 니 다.2. 포장 류 를 사용 하여 저장 할 수 있 는 기본 데이터 형식 을 한정 할 수 있다.
    9. 학생 수강 신청 - 집합 관리 과정 설정 을 통 해
  • Set 인터페이스 1, Set 은 요소 가 필요 하지 않 고 중복 할 수 없 는 집합 으로 집합 2, HashSet - 해시 집합 이 라 고 불 리 며 Set 의 중요 한 실현 류
  • 이다.
  • 기능 설명
    package student;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Scanner;
    
    import com.imooc.Course;
    import com.imooc.Student;
    
    /*
     * Set       HashSet
     * Set               ,     
     * HashSet--   , Set        
     */
    /*
     *       
     *       
     *       ,           (      courses--Set      )
     * --      、    ,      ID、
     * --    courses         ID     、         
     */
    public class SetTest {
        
        public List coursesToSelect;
        private Scanner console;
        public Student student; 
        public SetTest() {
            coursesToSelect = new ArrayList();
            console = new Scanner(System.in);
        }
        
        /**
         *    coursesToSelect       
         */
        public void testAdd() {
            //        ,     add  ,       List 
            Course cr1 = new Course("1" , "    ");
            coursesToSelect.add(cr1);
            Course temp = (Course) coursesToSelect.get(0);
    //      System.out.println("     :" + temp.id + ":" + temp.name); 
            
            Course cr2 = new Course("2", "C  ");
            coursesToSelect.add(0, cr2);
            Course temp2 = (Course) coursesToSelect.get(0);
    //      System.out.println("     :" + temp2.id + ":" + temp2.name);
            
    //      coursesToSelect.add(cr1);
    //      Course temp0 = (Course) coursesToSelect.get(2);
    //      System.out.println("     :" + temp.id + ":" + temp.name); 
            
            
            //               
    //      Course cr3 = new Course("3", "test");
    //      coursesToSelect.add(4, cr3);
            
            Course[] course = {new Course("3", "    "), new Course("4", "    ")};
            coursesToSelect.addAll(Arrays.asList(course));
            Course temp3 = (Course) coursesToSelect.get(2);
            Course temp4 = (Course) coursesToSelect.get(3);
            
    //      System.out.println("       :" + temp3.id + ":" + 
    //              temp3.name + ";" + temp4.id + ":" + temp4.name);
            
            Course[] course2 = {new Course("5", "    "), new Course("6", "    ")};
            coursesToSelect.addAll(2, Arrays.asList(course2));
            Course temp5 = (Course) coursesToSelect.get(2);
            Course temp6 = (Course) coursesToSelect.get(3);
    //      System.out.println("       :" + temp5.id + ":" + 
    //              temp5.name + ";" + temp6.id + ":" + temp6.name);
            
        }
        
        /**
         *   for each        
         * @param args
         */
        public void testForEach() {
            System.out.println("       (  for each  ):");
            for (Object obj : coursesToSelect) {
                Course cr = (Course) obj;
                System.out.println("  :" + cr.id + ":" + cr.name);
            }
        }
        
        public static void main(String[] args) {
            SetTest st = new SetTest();
            st.testAdd();
            st.testForEach();
            //        
            Student student=new Student("1","  ");
            System.out.println("    :"+student.name +"  !");
            //    Scanner  ,            ID
            Scanner console=new Scanner(System.in);
            
            for (int i = 0; i < 3; i++) {
                System.out.println("     ID");
                String courseId=console.next();
                for (Course cr:st.coursesToSelect) { //  Course coursesToSelect     
                if(cr.id.equals(courseId)) {
                    student.courses.add(cr);
                        /**
                         * Set ,      ,       ,
                         *            (   ),
                         *   ,             
                         */
    //                  student.courses.add(null);
    //                  student.courses.add(cr);
                    }
                }   
            }
            st.testForEachForSet(student);
        }
        public void testForEachForSet(Student student) {
            //    ,       !
            System.out.println("    :" + student.courses.size() + "   !");
            for (Course cr : student.courses) {
                System.out.println("     :" + cr.id + ":" + cr.name);
            }
        }
    }
    
  • 좋은 웹페이지 즐겨찾기