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
  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4242864.html
Copyright © 2011-2022 走看看