zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    查看ASM 使用率
    修改一行和修改全表的TX锁
    OCP-1Z0-053-V12.02-683题
    专栏成书亦可行也!——leo鉴书48
    Java用正则表达式判断是否为IP
    OCP-1Z0-053-V12.02-594题
    OCP-1Z0-053-V12.02-585题
    OCP-1Z0-053-V12.02-569题
    OCP-1Z0-053-V12.02-568题
    OCP-1Z0-053-V13.02-517题
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4242864.html
Copyright © 2011-2022 走看看