• Java学习记录(补充六:集合框架补充)


     
    collection工具类
    package day11;
    //工具类:提供一些静态的方法 import java.util.ArrayList; import java.util.Collections; public class CollectionsDemo { public static void main(String[] args) { ArrayList<Integer> list =new ArrayList<Integer>(); list.add(100); list.add(78); list.add(87); list.add(1); for(Integer n:list){ System.out.println(n); } System.out.println("********************"); System.out.println("asc sorted"); //升序排列 Collections.sort(list); for(Integer n1:list){ System.out.println(n1); } System.out.println("*******************"); //翻转排序(想要排序必须先升序) System.out.println("desc sorted"); Collections.reverse(list); for(Integer n2:list){ System.out.println(n2); } System.out.println("********************"); ArrayList<String> stringSet = new ArrayList<String>(); stringSet.add("Zeeb"); stringSet.add("Tcp"); stringSet.add("Http"); stringSet.add("要吃饭了..."); stringSet.add("七夕到了"); for(String s:stringSet){ System.out.println(s); } System.out.println("*******************"); Collections.sort(stringSet); for(String s1:stringSet){ System.out.println(s1); } } }


    
    
    


    公用News类

    package day11;
    public class News implements Comparable<News> { private String pubDate; private String title; public String getPubDate() { return pubDate; } public void setPubDate(String pubDate) { this.pubDate = pubDate; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public News(String pubDate, String title) { super(); this.pubDate = pubDate; this.title = title; } public News() { super(); } @Override public int compareTo(News o) { return this.pubDate.compareTo(o.pubDate); } }
    练习1(ArrayList)
    package day11; import java.util.ArrayList; import java.util.Collections;
    public class ListDemo { //(box)装箱:把基本数据类型转换为object类型(子类转换为父类) //(unBox)拆箱:把object类型转换为基本数据类型(父类转换为子类:强转) public static void main(String[] args) { ArrayList<News> newsList = new ArrayList<News>(); News news1 = new News("2017-8-28","又到一年七夕日"); News news2 = new News("2017-8-29","星期一,又要上课了"); News news3 = new News("2017-8-27","开学了"); newsList.add(news1); newsList.add(news2); newsList.add(news3); //newsList.add(news3);//可以重复,重复会显示 Collections.sort(newsList); for(News news:newsList){ System.out.println(news.getPubDate()+" "+news.getTitle()); } System.out.println("delete first"); newsList.remove(0);//索引值不能为最后一个,会报错 //newsList.clear();//全部都删除 for(News news:newsList){ System.out.println(news.getPubDate()+" "+news.getTitle()); } } }

    结果图:


    练习2(HashSet)
    package day11; import java.util.HashSet; import java.util.Iterator;
    public class SetDemo { public static void main(String[] args) { HashSet<Topic>topics = new HashSet<Topic>(); Topic topic1 = new Topic(1,"七夕你快乐吗?"); Topic topic2 = new Topic(2,"上课你快乐吗?"); Topic topic3 = new Topic(3,"写代码你快乐吗?"); topics.add(topic1); topics.add(topic2); topics.add(topic3); topics.add(topic1);//不能重复,重复不会显示 //topic1 = new Topic(1,"七夕我不快乐"); //topics.add(topic1);//新建了一个内存空间 topic1.setTitle("七夕我很快乐"); topic1.setTopicId(6); topics.add(topic1);//不是根据内容来判定是否能重复,根据对象的内存地址 Iterator<Topic> it = topics.iterator(); while(it.hasNext()){ System.out.println(it.next().getTitle()); } } }

    结果图:

    公用Book类
    package day11;
    public class Book { private String bookId; private String bookName; private String author; private String pubDate; public Book() { super(); } public Book(String bookId, String bookName, String author, String pubDate) { super(); this.bookId = bookId; this.bookName = bookName; this.author = author; this.pubDate = pubDate; } public String getBookId() { return bookId; } public void setBookId(String bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPubDate() { return pubDate; } public void setPubDate(String pubDate) { this.pubDate = pubDate; } @Override public boolean equals(Object obj) { if(!(obj instanceof Book)){ return false; } Book book = (Book)obj; return this.bookName.equals(book.bookName)&& this.author.equals(book.author)&& this.pubDate.equals(book.pubDate); //两个@Override用来判断不能重复 } @Override public int hashCode() { return this.bookName.hashCode();//返回当前对象的哈希码 } }
    package day11;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class bookTest {
    
        private Set<Book> books;
        
        public bookTest(){
            books = new HashSet<Book>();
            Book book1 = new Book("b011","哈利波特","外国人","1996-10-18");
            Book book2 = new Book("b015","孔乙己","鲁迅","1937-7-7");
            Book book3 = new Book("b008","时间简史","霍金","1737-7-7");
            Book book4 = new Book("b002","死亡笔记","日本人","2007-1-7");
            books.add(book1);
            books.add(book2);
            books.add(book3);
            books.add(book4);
        }
        
        public void showBooks() {
            for(Book book:books){
                System.out.println(book.getBookId()+"	"+book.getBookName()+"	"+book.getAuthor()+"	"+book.getPubDate());
            }
        }
        
        public void addBook(Book book) {
            books.add(book);
        }
        
        public boolean contains(Book book){
            return books.contains(book);
        }
        
        public static void main(String[] args) {
            bookTest bTest = new bookTest();
            bTest.showBooks();
            
            System.out.println("-------------添加图书以后------------");
            
            Book book = new Book();
            book.setBookId("b007");
            book.setBookName("西游记");
            book.setAuthor("吴承恩");
            book.setPubDate("1592-3-3");
            
            bTest.addBook(book);
            
            Book book1 = new Book();
            book1.setBookId("b007");
            book1.setBookName("西游记");
            book1.setAuthor("吴承恩");
            book1.setPubDate("1592-3-3");
            
    //        bTest.addBook(book1);
            
            boolean isContains = bTest.contains(book1);
            System.out.println(isContains);
            
            bTest.showBooks();
        }
    
    }

    结果图:

    Job类
    package day12homework;
    public class Job implements Comparable<Job> { private int jobId; private String jobName; private String jobCatgory; private String jobPub_date; public Job() { super(); } public Job(int jobId, String jobName, String jobCatgory, String jobPub_data) { super(); this.jobId = jobId; this.jobName = jobName; this.jobCatgory = jobCatgory; this.jobPub_date = jobPub_data; } public int getJobId() { return jobId; } public void setJobId(int jobId) { this.jobId = jobId; } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobCatgory() { return jobCatgory; } public void setJobCatgory(String jobCatgory) { this.jobCatgory = jobCatgory; } public String getJobPub_date() { return jobPub_date; } public void setJobPub_date(String jobPub_date) { this.jobPub_date = jobPub_date; } @Override public boolean equals(Object obj) { if (!(obj instanceof Job)) { return false; } Job job = (Job)obj; return this.jobName.equals(job.jobName) &&this.jobCatgory.equals(job.jobCatgory) &&this.jobPub_date.equals(job.jobPub_date); } public int hashCode() { return this.jobName.hashCode(); } @Override public int compareTo(Job o) { if (this.jobId > o.jobId) { return 1; }else if (this.jobId == o.jobId) { return 0; }else { return -1; } } }
    Nmae选择器
    package day12homework; import java.text.Collator; import java.util.Comparator; import java.util.Locale;
    public class JobComparatorByName implements Comparator<Job> { @Override public int compare(Job o1, Job o2) { Collator instance = Collator.getInstance(Locale.CHINA); return instance.compare(o1.getJobName(), o2.getJobName()); //return o1.getJobName().compareTo(o2.getJobName()); } }
    Pub_date选择器
    package day12homework; import java.util.Comparator;
    public class JobComparatorByPub_date implements Comparator<Job> { @Override public int compare(Job o1, Job o2) { return o1.getJobPub_date().compareTo(o2.getJobPub_date()); } }
    实现测试类
    package day12homework; import java.util.HashSet;
    public class Test1 { private HashSet<Job> jobs; public Test1(){ jobs=new HashSet<Job>(); Job job1=new Job(5,"程序员","技术开发","2017-8-29"); Job job2=new Job(15,"架构师","技术开发","2017-6-29"); Job job3=new Job(55,"鼓励师","后勤","2017-2-25"); Job job4=new Job(2,"保洁","后勤","2017-12-29"); Job job5=new Job(9,"会计","财会","2016-8-29"); jobs.add(job1); jobs.add(job2); jobs.add(job3); jobs.add(job4); jobs.add(job5); } public void showJobs(){ for(Job job:jobs){ System.out.println(job.getJobId()+" " +job.getJobName()+" " +job.getJobCatgory()+" " +job.getJobPub_date()+" "); } } public void addJob(Job job){ this.jobs.add(job); } public void removeJob(Job job){ this.jobs.remove(job); } public static void main(String[] args) { Test1 test1=new Test1(); test1.showJobs(); System.out.println("==========added==========="); Job job1=new Job(19,"审计","审计","2016-8-19"); test1.addJob(job1); test1.showJobs(); System.out.println("=========deleted============"); Job job2=new Job(19,"审计","审计","2016-8-19"); test1.removeJob(job2); test1.showJobs(); } }

    结果图:

    package day12homework;
    
    import java.util.HashMap;
    
    public class Test3 {
        private HashMap<Job,Integer> jobs;
        public Test3(){
            jobs=new HashMap<Job,Integer>();
            Job job1=new Job(5,"程序员","技术开发","2017-8-29");
            Job job2=new Job(15,"架构师","技术开发","2017-6-29");
            Job job3=new Job(55,"鼓励师","后勤","2017-2-25");
            Job job4=new Job(2,"保洁","后勤","2017-12-29");
            Job job5=new Job(9,"会计","财会","2016-8-29");
            
            jobs.put(job1, 5);
            jobs.put(job2, 2);
            jobs.put(job3, 15);
            jobs.put(job4, 3);
            jobs.put(job5, 1);
        }
        
        public void updateNumber(Job job,int num){
            if(jobs.keySet().contains(job)){
                jobs.put(job, num);
            }
        }
        

    结果图:

    package day12homework;
    
    import java.util.HashMap;
    
    public class Test3 {
        private HashMap<Job,Integer> jobs;
        public Test3(){
            jobs=new HashMap<Job,Integer>();
            Job job1=new Job(5,"程序员","技术开发","2017-8-29");
            Job job2=new Job(15,"架构师","技术开发","2017-6-29");
            Job job3=new Job(55,"鼓励师","后勤","2017-2-25");
            Job job4=new Job(2,"保洁","后勤","2017-12-29");
            Job job5=new Job(9,"会计","财会","2016-8-29");
            
            jobs.put(job1, 5);
            jobs.put(job2, 2);
            jobs.put(job3, 15);
            jobs.put(job4, 3);
            jobs.put(job5, 1);
        }
        
        public void updateNumber(Job job,int num){
            if(jobs.keySet().contains(job)){
                jobs.put(job, num);
            }
        }
        
        public void showJobs(){
            for(Job job:jobs.keySet()){
                
                System.out.println(job.getJobId()+"	"
                        +job.getJobName()+"	"
                        +job.getJobCatgory()+"	"
                        +job.getJobPub_date()+"	"
                        +jobs.get(job).intValue());
            }
        }
        
        public static void main(String[] args) {
            Test3 test3=new Test3();
            test3.showJobs();
            
            System.out.println("=========修改数量以后============");
            //如果原集合并不存在此工作,则不修改
            Job job=new Job(55,"鼓励师1","后勤","2017-2-25");
            
            test3.updateNumber(job, 50);
            test3.showJobs();
            
        }
    
    }

    结果图:

  • 相关阅读:
    html——meta标签、link标签
    html——a标签中target属性
    html——相对路径、绝对路径(有待补充....)
    CSS——display:flex
    JS——AJAX
    JS——锚点的运用
    Json——转义符
    C#——工厂模式
    C#——反射动态创建类的实例
    “微信跳一跳”辅助脚本的一种简单实现
  • 原文地址:https://www.cnblogs.com/lizuowei/p/7444983.html
Copyright © 2020-2023  润新知