java中的集合框架

clipboard.png

目录结构

clipboard.png

创建学生类和课程类

课程类

/imooc_collection_map_demo/src/com/imooc/collection/Course.java
package com.imooc.collection;
//课程类
public class Course {
    public String id;
    public String name;
    
    public Course(String id, String name) {
        this.id = id;
        this.name = name;
    }
}

学生类

/imooc_collection_map_demo/src/com/imooc/collection/Student.java
package com.imooc.collection;

//学生类

import java.util.HashSet;
import java.util.Set;

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();
    }
}

添加课程

添加的方法

/imooc_collection_map_demo/src/com/imooc/collection/ListTest.java
package com.imooc.collection;

import java.util.ArrayList;
import java.util.List;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
    }
}

clipboard.png

数组下标越界异常

/imooc_collection_map_demo/src/com/imooc/collection/ListTest.java
package com.imooc.collection;

import java.util.ArrayList;
import java.util.List;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
        Course cr3 = new Course("3", "test");
        coursesToSelect.add(-1,cr3);

        Course cr3 = new Course("3", "test");
        coursesToSelect.add(4,cr3);
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
    }
}

clipboard.png

clipboard.png

数组形式添加

/imooc_collection_map_demo/src/com/imooc/collection/ListTest.java
package com.imooc.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
//        Course cr3 = new Course("3", "test");
//        coursesToSelect.add(-1,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);
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
    }
}

clipboard.png

查询课程

/imooc_collection_map_demo/src/com/imooc/collection/ListTest.java

查询代码

    //取得list中的元素的方法
    public void testGet() {
        int size = coursesToSelect.size();
        System.out.println("有如下课程待选1");
        for(int i = 0;i<size;i++) {
            Course cr = (Course) coursesToSelect.get(i);
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过迭代器来遍历list
    public void testIterator() {
        Iterator it = coursesToSelect.iterator();
        System.out.println("有如下课程待选2");
        while(it.hasNext()) {
            Course cr = (Course) it.next();
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过for each来遍历list
    public void testForEach() {
        System.out.println("有如下课程待选3");
        for(Object obj: coursesToSelect) {
            Course cr = (Course) obj;
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }

完整代码

package com.imooc.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import sun.security.krb5.internal.crypto.crc32;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
//        Course cr3 = new Course("3", "test");
//        coursesToSelect.add(-1,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);
    }
    
    //取得list中的元素的方法
    public void testGet() {
        int size = coursesToSelect.size();
        System.out.println("有如下课程待选1");
        for(int i = 0;i<size;i++) {
            Course cr = (Course) coursesToSelect.get(i);
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过迭代器来遍历list
    public void testIterator() {
        Iterator it = coursesToSelect.iterator();
        System.out.println("有如下课程待选2");
        while(it.hasNext()) {
            Course cr = (Course) it.next();
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过for each来遍历list
    public void testForEach() {
        System.out.println("有如下课程待选3");
        for(Object obj: coursesToSelect) {
            Course cr = (Course) obj;
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
        lt.testGet();
        lt.testIterator();
        lt.testForEach();
    }
}

打印

clipboard.png

修改课程

修改部分代码

    //修改list中的元素
    public void testModify() {
        coursesToSelect.set(4, new Course("7","毛概"));
    }

全部代码

package com.imooc.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import com.sun.org.apache.bcel.internal.generic.NEW;

import sun.security.krb5.internal.crypto.crc32;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
//        Course cr3 = new Course("3", "test");
//        coursesToSelect.add(-1,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);
    }
    
    //取得list中的元素的方法
    public void testGet() {
        int size = coursesToSelect.size();
        System.out.println("有如下课程待选1");
        for(int i = 0;i<size;i++) {
            Course cr = (Course) coursesToSelect.get(i);
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过迭代器来遍历list
    public void testIterator() {
        Iterator it = coursesToSelect.iterator();
        System.out.println("有如下课程待选2");
        while(it.hasNext()) {
            Course cr = (Course) it.next();
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过for each来遍历list
    public void testForEach() {
        System.out.println("有如下课程待选3");
        for(Object obj: coursesToSelect) {
            Course cr = (Course) obj;
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    //修改list中的元素
    public void testModify() {
        coursesToSelect.set(4, new Course("7","毛概"));
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
        lt.testGet();
        lt.testIterator();
        lt.testForEach();
        lt.testModify();
        lt.testForEach();
    }
}

打印

clipboard.png

删除课程

删除部分代码

    //删除list中的元素
    public void testRemove() {
//        1.通过key删除
//        Course cr = (Course) coursesToSelect.get(4);
//        System.out.println("我是课程:" + cr.id + ":" + cr.name + "我即将被删除");
//        coursesToSelect.remove(cr);
        
//        2.通过index删除
//        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();
    }

全部代码

package com.imooc.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import com.sun.org.apache.bcel.internal.generic.NEW;

import sun.security.krb5.internal.crypto.crc32;

public class ListTest {
    //用于存放备选课程的List
    public List coursesToSelect;
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    //用于往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);
        
//        Course cr3 = new Course("3", "test");
//        coursesToSelect.add(-1,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);
    }
    
    //取得list中的元素的方法
    public void testGet() {
        int size = coursesToSelect.size();
        System.out.println("有如下课程待选1");
        for(int i = 0;i<size;i++) {
            Course cr = (Course) coursesToSelect.get(i);
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过迭代器来遍历list
    public void testIterator() {
        Iterator it = coursesToSelect.iterator();
        System.out.println("有如下课程待选2");
        while(it.hasNext()) {
            Course cr = (Course) it.next();
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    //通过for each来遍历list
    public void testForEach() {
        System.out.println("有如下课程待选3");
        for(Object obj: coursesToSelect) {
            Course cr = (Course) obj;
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    //修改list中的元素
    public void testModify() {
        coursesToSelect.set(4, new Course("7","毛概"));
    }
    //删除list中的元素
    public void testRemove() {
//        1.通过key删除
//        Course cr = (Course) coursesToSelect.get(4);
//        System.out.println("我是课程:" + cr.id + ":" + cr.name + "我即将被删除");
//        coursesToSelect.remove(cr);
        
//        2.通过index删除
//        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();
    }
    
    public static void main(String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
        lt.testGet();
        lt.testIterator();
        lt.testForEach();
        lt.testModify();
        lt.testForEach();
        lt.testRemove();
    }
}

打印

clipboard.png


渣渣辉
1.3k 声望147 粉丝