首页 > 代码库 > Java集合框架1

Java集合框架1

1.顺序表(ArrayList)使用示例

例1. ArrayList使用示例。

package set;import java.util.*;import java.io.*;public class demoArrayList {    public static void main(String[] args) {        ArrayList<String> stu = new ArrayList<String>();        Scanner in = new Scanner(System.in);        System.out.println("请输入学生的姓名,空行表示结束!");        String name;        boolean goon = true;        while(goon){            name = in.nextLine();            if(name.length()>0){                stu.add(name);                System.out.println("添加成功:"+name);            }else                goon = false;        }        goon = true;        System.out.println("请输入要删除的学生的姓名,空行表示结束!");        while(goon){            name = in.nextLine();            if(name.length()>0){                stu.remove(name);                System.out.println("删除成功:"+name);            }else                goon = false;        }        System.out.println("剩下的学生姓名如下:");        for(String stuName:stu)            System.out.println(stuName);        in.close();    }}

2.链表(LinkedList)使用示例

例2. 猴子选大王。

package set;import java.util.*;public class monkey {    public static void main(String[] args) {        LinkedList<Integer> monkeys = new LinkedList<Integer>();        int number,cnt;        for(number=1;number<=100;number++)            monkeys.addLast(number);        number = 0;        cnt = 100;        Iterator it = monkeys.iterator();        while(cnt>1){            if(it.hasNext()){                number++;                it.next();            }else                it = monkeys.iterator();            if(number == 14){                number = 0;                it.remove();                cnt--;            }        }        System.out.println("大王编号为:"+monkeys.element());    }}

 程序运行结果如下:

大王编号为:92

3. 优先队列(PriorityQueue)使用示例

例3. 模拟操作系统的进程调度。

package set;public class job {    private int number; //存放作业编号    private int spend;  //存放作业所需时间    public job(int number, int spend) {        this.number = number;        this.spend = spend;    }        public int getNumber() {        return number;    }    public void setNumber(int number) {        this.number = number;    }        public int getSpend() {        return spend;    }    public void setSpend(int spend) {        this.spend = spend;    }}
package set;import java.util.*;public class myCompare implements Comparator<job> {    public int compare(job o1, job o2) {        if(o1.getSpend()>o2.getSpend())            return 1;        if(o1.getSpend()<o2.getSpend())            return -1;        return 0;    }        public boolean equals(Object obj){        return super.equals(obj);    }}
package set;import java.util.*;import java.io.*;public class scheduling {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        myCompare mycom = new myCompare();        PriorityQueue<job> priQue = new PriorityQueue<job>(20,mycom);        System.out.println("请依次输入作业所需时间,0表示结束");        boolean goon = true;        int time;        for(int cnt=1;goon;cnt++){            System.out.print("作业"+cnt+"所需时间为:");            time = in.nextInt();            if(time>0)                priQue.add(new job(cnt,time));            else                goon = false;        }        System.out.println("作业调度的顺序为:");        while(priQue.size()>0){            job jb = priQue.poll();            System.out.println("作业编号:"+jb.getNumber()+" 所需运行时间:"+jb.getSpend());        }    }}

程序运行结果如下:

请依次输入作业所需时间,0表示结束作业1所需时间为:156作业2所需时间为:92作业3所需时间为:41作业4所需时间为:285作业5所需时间为:77作业6所需时间为:869作业7所需时间为:12作业8所需时间为:326作业9所需时间为:1作业10所需时间为:99作业11所需时间为:0作业调度的顺序为:作业编号:9 所需运行时间:1作业编号:7 所需运行时间:12作业编号:3 所需运行时间:41作业编号:5 所需运行时间:77作业编号:2 所需运行时间:92作业编号:10 所需运行时间:99作业编号:1 所需运行时间:156作业编号:4 所需运行时间:285作业编号:8 所需运行时间:326作业编号:6 所需运行时间:869

4. 哈希集合(HashSet)使用示例

例4. HashSet使用示例。

package set;import java.util.*;import java.io.*;public class demoHashSet {    public static void main(String[] args) {        HashSet<String> stu = new HashSet<String>();        Scanner in = new Scanner(System.in);        System.out.println("请输入学生的姓名,空行表示结束!");        String name;        boolean goon = true;        while(goon){            name = in.nextLine();            if(name.length()>0)                if(stu.add(name))                    System.out.println("学生添加成功:"+name);                else                    System.out.println("学生添加失败:"+name);            else                goon = false;        }        goon = true;        System.out.println("请输入要删除的学生姓名,空行表示结束!");        while(goon){            name = in.nextLine();            if(name.length()>0)                if(stu.remove(name))                    System.out.println("学生删除成功:"+name);                else                    System.out.println("学生删除失败:"+name);            else                goon = false;        }        System.out.println("剩余的学生姓名如下:");        for(String stuName : stu)            System.out.println(stuName);
in.close(); }}

程序运行结果如下:

请输入学生的姓名,空行表示结束!张三学生添加成功:张三李四学生添加成功:李四王五学生添加成功:王五赵六学生添加成功:赵六孙七学生添加成功:孙七郑八学生添加成功:郑八请输入要删除的学生姓名,空行表示结束!王五学生删除成功:王五郑八学生删除成功:郑八剩余的学生姓名如下:赵六孙七张三李四

 5. 哈希映射(HashMap)使用示例

例5. 哈希映射使用示例。

package set;import java.util.*;import java.io.*;public class demoHashMap {    public static void main(String[] args) {        HashMap<String,Integer> stu = new HashMap<String,Integer>();        Scanner in = new Scanner(System.in);        System.out.println("请依次输入学生的姓名和成绩,空行表示结束");        String name;        Integer score;        boolean goon = true;        while(goon){            System.out.println("请输入学生的姓名:");            name = in.nextLine();            if(name.length()>0){                System.out.println("请输入学生的成绩:");                score = new Integer(in.nextLine());                stu.put(name, score);            }else                goon = false;        }        goon = true;        System.out.println("请输入要查找学生的姓名,空行表示结束");        while(goon){            System.out.println("学生姓名:");            name = in.nextLine();            if(name.length()>0){                score = stu.get(name);                if(score!=null)                    System.out.println(name+"成绩为:"+score);                else                    System.out.println("要查找的人不存在");            }            else                goon = false;        }        in.close();    }}

程序运行结果如下:

请依次输入学生的姓名和成绩,空行表示结束请输入学生的姓名:张三请输入学生的成绩:90请输入学生的姓名:李四请输入学生的成绩:80请输入学生的姓名:请输入要查找学生的姓名,空行表示结束学生姓名:张三张三成绩为:90学生姓名:王五要查找的人不存在学生姓名:

 6. 有序树(TreeSet)使用示例

例6. TreeSet使用示例。

package set;public class Student {    private String name;    private int score;    public Student(String name, int score) {        this.name = name;        this.score = score;    }        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }        public int getScore() {        return score;    }    public void setScore(int score) {        this.score = score;    }}
package set;import java.util.*;public class CompareScore implements Comparator<Student> {    public int compare(Student o1, Student o2) {        if(o1.getScore()<o2.getScore())            return 1;        if(o1.getScore()>o2.getScore())            return -1;        return 0;    }        public boolean equals(Object obj){        return super.equals(obj);    }}
import java.io.*;public class demoTreeSet {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        CompareScore com = new CompareScore();        TreeSet stu = new TreeSet(com);        System.out.println("请依次输入学生的姓名和成绩,空行表示结束!");        String name;        Integer score;        boolean goon = true;        while(goon){            System.out.println("请输入学生的姓名:");            name = in.nextLine();            if(name.length()>0){                System.out.println("请输入学生的成绩:");                score = new Integer(in.nextLine());                if(stu.add(new Student(name,score)))                    System.out.println("学生添加成功:"+name);                else                    System.out.println("学生添加失败:"+name);            }            else                goon = false;        }        in.close();        System.out.println("学生成绩按降序排序为:");        Iterator it = stu.iterator();        Student s;        while(it.hasNext()){            s = (Student)it.next();            System.out.println("姓名:"+s.getName()+" 成绩:"+s.getScore());        }    }}

程序运行结果如下:

请依次输入学生的姓名和成绩,空行表示结束!请输入学生的姓名:张丽请输入学生的成绩:78学生添加成功:张丽请输入学生的姓名:王杰请输入学生的成绩:88学生添加成功:王杰请输入学生的姓名:唐勇请输入学生的成绩:65学生添加成功:唐勇请输入学生的姓名:叶文请输入学生的成绩:92学生添加成功:叶文请输入学生的姓名:学生成绩按降序排序为:姓名:叶文 成绩:92姓名:王杰 成绩:88姓名:张丽 成绩:78姓名:唐勇 成绩:65

7. 有序树映射类(TreeMap)使用示例

例7. TreeMap使用示例。

package set;import java.util.*;import java.io.*;public class demoTreeMap {    public static void main(String[] args) {        TreeMap stu = new TreeMap();        Scanner in = new Scanner(System.in);        System.out.println("请依次输入学生的姓名和成绩,空行表示结束!");        String name;        Integer score;        boolean goon = true;        while(goon){            System.out.println("请输入学生的姓名:");            name = in.nextLine();            if(name.length()>0){                System.out.println("请输入"+name+"的成绩:");                score = new Integer(in.nextLine());                stu.put(name, score);            }else                goon = false;        }        goon = true;        System.out.println("请输入要查找的学生姓名,空行表示结束!");        while(goon){            name = in.nextLine();            if(name.length()>0){                score = (Integer) stu.get(name);                if(score != null)                    System.out.println("姓名:"+name+" 成绩:"+score);                else                    System.out.println("没有找到学生:"+name);            }else                goon = false;        }        in.close();    }}

程序运行解过如下:

请依次输入学生的姓名和成绩,空行表示结束!请输入学生的姓名:王长喜请输入王长喜的成绩:85请输入学生的姓名:张丽请输入张丽的成绩:91请输入学生的姓名:王杰请输入王杰的成绩:75请输入学生的姓名:请输入要查找的学生姓名,空行表示结束!王杰姓名:王杰 成绩:75

 

Java集合框架1