• Java常用工具——java集合


    一、ArrayList

    package com.imooc.set;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ArrayListDemo {
    
        public static void main(String[] args) {
            // 用ArrayList存储编程语言的名称,并输出。
            //名称包括”Java”、”C”、”C++“、”Go”和”Swift”
            List list=new ArrayList();
            list.add("Java");
            list.add("C");
            list.add("C++");
            list.add("Go");
            list.add("Swift");
            //输出列表中元素的个数
            System.out.println("列表中元素的个数:"+list.size());
            
            //遍历输出所有编程语言
            System.out.println("==========================");
            for(int i=0;i<list.size();i++) {
                System.out.print(list.get(i)+" ");
            }
            System.out.println();
    
            //移除列表中的C++
            System.out.println("==========================");
    //        list.remove(2);
            list.remove("C++");
            System.out.println("移除c++后列表的元素为:");
            for(int i=0;i<list.size();i++) {
                System.out.print(list.get(i)+" ");
            }
            System.out.println();
        }
    
    }

    二、案例

    • 需求

    -公告的添加和显示

    -在指定位置处插入公告

    -删除公告

    -修改公告

    • 公告类属性

    -编号 id

     - 标题 title

    -创建人 creator

    -创建时间 createTime

    • 公告类方法

    -构造方法

    -获取和设置属性值的方法

    package com.imooc.set;
    
    import java.util.Date;
    
    public class Notice {
        //Notice类,属性:id,title,creator,ctreaterDate
        private int id;
        private String title;
        private String creator;
        private Date creatTime;
        //构造方法
        public Notice(int id, String title, String creator, Date creatTime) {
            super();
            this.id = id;
            this.title = title;
            this.creator = creator;
            this.creatTime = creatTime;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getCreator() {
            return creator;
        }
        public void setCreator(String creator) {
            this.creator = creator;
        }
        public Date getCreatTime() {
            return creatTime;
        }
        public void setCreatTime(Date creatTime) {
            this.creatTime = creatTime;
        }
        
        
        
        
    }
    package com.imooc.set;
    
    import java.util.ArrayList;
    import java.util.Date;
    
    
    public class NoticeTest {
    
        public static void main(String[] args) {
            // 创建Notice类的对象,生成三条公告
            Notice notice1=new Notice(1,"欢迎来到java世界!","管理员",new Date());
            Notice notice2=new Notice(2,"请按时提交作业","老师",new Date());
            Notice notice3=new Notice(3,"考勤通知","老师",new Date());
            //添加公告
            ArrayList noticeList=new ArrayList();
            noticeList.add(notice1);
            noticeList.add(notice2);
            noticeList.add(notice3);
            //显示公告
            System.out.println("公告内容为:");
            for(int i=0;i<noticeList.size();i++) {
                System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
            }
        }
    
    }

    3、删除、修改公告

    package com.imooc.set;
    
    import java.util.ArrayList;
    import java.util.Date;
    
    
    public class NoticeTest {
        
        public static void main(String[] args) {
            // 创建Notice类的对象,生成三条公告
            Notice notice1=new Notice(1,"欢迎来到java世界!","管理员",new Date());
            Notice notice2=new Notice(2,"请按时提交作业","老师",new Date());
            Notice notice3=new Notice(3,"考勤通知","老师",new Date());
            //添加公告
            ArrayList noticeList=new ArrayList();
            noticeList.add(notice1);
            noticeList.add(notice2);
            noticeList.add(notice3);
            //显示公告
            System.out.println("公告内容为:");
            for(int i=0;i<noticeList.size();i++) {
                System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
            }
            //再第二条位置新增一条公告
            Notice notice4=new Notice(4,"在线编辑器可以使用了","管理员",new Date());
            noticeList.add(1,notice4);
            //显示公告
            System.out.println("======================");
            System.out.println("公告内容为:");
            for(int i=0;i<noticeList.size();i++) {
                System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
            }
            //删除按时提交作业的公告
            noticeList.remove(2);
            //显示公告
            System.out.println("======================");
            System.out.println("公告内容为:");
            for(int i=0;i<noticeList.size();i++) {
                System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
            }
            //修改第二条公告的title
            notice4.setTitle("JAVA在线编辑器可以使用了!");
            noticeList.set(1,notice4);
            //显示公告
            System.out.println("======================");
            System.out.println("公告内容为:");
            for(int i=0;i<noticeList.size();i++) {
                System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
            }
        }
    
    }

     四、HashSet

    常用方法

    package com.imooc.set;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    public class CatTest {
    
        public static void main(String[] args) {
            // 定义宠物猫对象
            Cat huahua=new Cat("花花",12,"英国短毛猫");
            Cat fanfan=new Cat("凡凡",3,"中华田园猫");
            //将宠物猫对象放入HashSet中
            Set set=new HashSet();
            set.add(huahua);
            set.add(fanfan);
            //显示宠物猫信息
            Iterator it=set.iterator();
            while(it.hasNext()) {
                System.out.println(it.next());
            }
            //再添加一个与花花属性一样的猫
            Cat huahua1=new Cat("花花",12,"英国短毛猫");
            set.add(huahua1);
            System.out.println("=================================");
            System.out.println("添加重复数据后的宠物猫信息为:");
            //显示宠物猫信息
            it=set.iterator();
            while(it.hasNext()) {
                System.out.println(it.next());
            }
        }
    
    }
    package com.imooc.set;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    /*
     * 查找
     * 1、在集合中查找花花的信息并输出
     * 2、通过名字查找花花的信息
     */
    
    public class CatTest2 {
    
        public static void main(String[] args) {
            //创建宠物猫对象
            Cat huahua=new Cat("花花",12,"英国短毛猫");
            Cat huahua02=new Cat("花花二代",2,"英国短毛猫");
            Cat fanfan=new Cat("凡凡",612,"中华田园猫");
            //将宠物猫对象放到set中.add()
            Set set=new HashSet();
            set.add(huahua);
            set.add(huahua02);
            set.add(fanfan);
            
            
            //1、在集合中查找花花的信息并输出.contains()
            if(set.contains(huahua)) {
                System.out.println("花花找到了!");
                System.out.println(huahua);
            }else {
                System.out.println("花花没有找到!");
            }
            
            //2、通过名字查找花花的信息
            boolean flag=false;
            Cat c=null;
            Iterator it=set.iterator();
            while(it.hasNext()){
                c=(Cat)it.next();
                if(c.getName().equals("花花")) {
                    flag=true;
                    break;
                }
            }
            if(flag) {
                System.out.println("花花找到了");
                System.out.println(c);
            }else {
                System.out.println("花花没有找到");
            }
        }
    
    }
    package com.imooc.set;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    /*
     * 查找
     * 1、在集合中查找花花的信息并输出
     * 2、通过名字查找花花的信息
     */
    
    public class CatTest2 {
    
        public static void main(String[] args) {
            //创建宠物猫对象
            Cat huahua=new Cat("花花",12,"英国短毛猫");
            Cat huahua02=new Cat("花花二代",2,"英国短毛猫");
            Cat fanfan=new Cat("凡凡",3,"中华田园猫");
            //将宠物猫对象放到set中.add()
            Set<Cat> set=new HashSet<Cat>();
            set.add(huahua);
            set.add(huahua02);
            set.add(fanfan);
            
            
            //1、在集合中查找花花的信息并输出.contains()
            if(set.contains(huahua)) {
                System.out.println("花花找到了!");
                System.out.println(huahua);
            }else {
                System.out.println("花花没有找到!");
            }
            
            //2、通过名字查找花花的信息
            boolean flag=false;
            Cat c=null;
            Iterator<Cat> it=set.iterator();
            while(it.hasNext()){
                c=(Cat)it.next();
                if(c.getName().equals("花花")) {
                    flag=true;
                    break;
                }
            }
            if(flag) {
                System.out.println("花花找到了");
                System.out.println(c);
            }else {
                System.out.println("花花没有找到");
            }
        
        //删除花花二代的信息并重写输出
    //    for(Cat cat:set) {
    //        if(cat.getName().equals("花花二代")) {
    //            set.remove(cat);
    //            break;
    //        }
    //    }
        Set<Cat> set1=new HashSet<Cat>();
        for(Cat cat:set) {
            if(cat.getMonth()<5) {
                set1.add(cat);
            }
        }
        set.removeAll(set1);
        System.out.println("=================================");
        System.out.println("删除花花二代后的宠物猫信息为:");
        //显示宠物猫信息
        it=set.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
        //删除集合中所有宠物猫信息
        System.out.println("=================================");
    //    boolean flag1=set.removeAll(set);
    //    if(flag1) {
        set.removeAll(set);
        if(set.isEmpty()) {
            System.out.println("猫都不见了!");
        }else {
            System.out.println("猫还在~~");
        }
        }
    }

    五、Map

    Map
    • Map中的数据是以键值对(key-value)的形式存储的
    • key-value以Entry类型的对象实例存在
    • 可以通过key值快速地查找value
    • 一个映射不能包含重复的键
    • 每个键最多只能映射到一个值
     
    HashMap
    • 基于哈希表的Map接口的实现
    • 允许使用null值和null键
    • key值不允许重复
    • HashMap中的Entry对象是无序排列的
     
    案例1
    • 完成一个类似字典的功能。
    - 将单词以及单词的注释存储到HashMap中
    - 显示HashMap中的内容
    - 查找某个单词的注释并显示
     
    package com.imooc.set;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Scanner;
    import java.util.Set;
    
    /*
     * 案例1
    • 完成一个类似字典的功能。
    - 将单词以及单词的注释存储到HashMap中
    - 显示HashMap中的内容
    - 查找某个单词的注释并显示
     */
    public class DictionDemo {
        public static void main(String[] args) {
            Map<String,String> animal=new HashMap<String,String>();
            System.out.println("请输入三组单词对应的注释,并存放到HashMap中:");
            Scanner sc=new Scanner(System.in);
            //添加数据
            for(int i=0;i<3;i++) {
                System.out.println("请输入key的值:");
                String key=sc.next();
                System.out.println("请输入value的值:");
                String value=sc.next();
                animal.put(key,value);
            }
            //打印并输出value的值(直接使用迭代器)
            System.out.println("======================");
            System.out.println("使用迭代器输出所有value:");
            Iterator<String> it=animal.values().iterator();
            while(it.hasNext()) {
                System.out.print(it.next()+" ");
            }
            System.out.println();
            System.out.println("======================");
            //打印并输出key-value的值(直接entrySet)
            System.out.println("通过entrySet方法获得key-value:");
            Set<Entry<String, String>> entrySet=animal.entrySet();
            for(Entry<String, String> entry:entrySet) {
                System.out.print(entry.getKey()+"-");
                System.out.println(entry.getValue());
            }
        }
    }
    package com.imooc.set;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Scanner;
    import java.util.Set;
    
    
    public class DictionDemo {
        public static void main(String[] args) {
            Map<String,String> animal=new HashMap<String,String>();
            System.out.println("请输入三组单词对应的注释,并存放到HashMap中:");
            Scanner sc=new Scanner(System.in);
            //添加数据
            for(int i=0;i<3;i++) {
                System.out.println("请输入key的值:");
                String key=sc.next();
                System.out.println("请输入value的值:");
                String value=sc.next();
                animal.put(key,value);
            }
            //打印并输出value的值(直接使用迭代器)
            System.out.println("======================");
            System.out.println("使用迭代器输出所有value:");
            Iterator<String> it=animal.values().iterator();
            while(it.hasNext()) {
                System.out.print(it.next()+" ");
            }
            System.out.println();
            System.out.println("======================");
            //打印并输出key-value的值(直接entrySet)
            System.out.println("通过entrySet方法获得key-value:");
            Set<Entry<String, String>> entrySet=animal.entrySet();
            for(Entry<String, String> entry:entrySet) {
                System.out.print(entry.getKey()+"-");
                System.out.println(entry.getValue());
            }
            System.out.println();
            System.out.println("======================");
            //通过单词找到注释并输出
            //使用keySet方法
            System.out.println("请输入要查找的单词:");
            String strSearch=sc.next();
            //1.获取keySet
            Set<String> keySet=animal.keySet();
            //2.遍历keySet
            boolean flag=false;
            for(String key:keySet) {
                if(strSearch.equals(key)) {
                    flag=true;
                    break;
                }
            }
            if(flag) {
                System.out.println("找到了!"+"键值对为:"+strSearch+"-"+animal.get(strSearch));
            }else{
                System.out.println("抱歉,没有找到!");
            }
        }
    }

    案例2:商品信息管理
    • 使用HashMap对商品信息进行管理
    -其中key为商品编号,value为商品对象
    • 对HashMap中的商品信息进行增、删、改、查操作
     
    分析商品信息类
    • 属性
    -商品编号:id
    -商品名称:name
    -商品价格:price
    • 方法
    -构造方法
    -获取和设置属性值的方法
    -其他方法
    package com.imooc.set;
    
    public class Goods {
        private String id;//商品编号
        private String name;//商品名称
        private double price;//价格
        
        //构造方法
        public Goods(String id, String name, double price) {
            super();
            this.id = id;
            this.name = name;
            this.price = price;
        }
        //getter和setter
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        @Override
        public String toString() {
            return "商品编号:" + id + ", 商品名称:" + name + ", 商品价格:" + price;
        }
        
    }
    package com.imooc.set;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Scanner;
    
    public class GoodsTest {
    
        public static void main(String[] args) {
            // 使用HashMap管理商品信息,并实现增删改查
            Scanner sc=new Scanner(System.in);
            //定义HashMap对象
            Map<String,Goods> goodsMap=new HashMap<String,Goods>();
            System.out.println("请输入三条商品信息:");
            int i=0;
            while(i<3) {
                System.out.println("请输入第"+(i+1)+"条商品信息:");
                System.out.println("请输入商品编号:");
                String goodsId=sc.next();
                System.out.println("请输入商品名称:");
                String goodsName=sc.next();
                System.out.println("请输入商品价格:");
                double goodsPrice=sc.nextDouble();
                Goods goods=new Goods(goodsId,goodsName,goodsPrice);
                goodsMap.put(goodsId,goods);
                i++;
            }
            //遍历map输出商品信息
            System.out.println("商品的全部信息为:");
            Iterator<Goods> it=goodsMap.values().iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
        }
    
    }
    package com.imooc.set;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Scanner;
    
    public class GoodsTest {
    
        public static void main(String[] args) {
            // 使用HashMap管理商品信息,并实现增删改查
            Scanner sc=new Scanner(System.in);
            //定义HashMap对象
            Map<String,Goods> goodsMap=new HashMap<String,Goods>();
            System.out.println("请输入三条商品信息:");
            int i=0;
            while(i<3) {
                System.out.println("请输入第"+(i+1)+"条商品信息:");
                System.out.println("请输入商品编号:");
                String goodsId=sc.next();
                //判断商品编号是否存在
                if(goodsMap.containsKey(goodsId)) {
                    System.out.println("该商品编号已经存在,请重新输入!");
                    continue;
                }
                System.out.println("请输入商品名称:");
                String goodsName=sc.next();
                System.out.println("请输入商品价格:");
                double goodsPrice=0;
                try {
                    goodsPrice=sc.nextDouble();
                }catch(Exception e) {
                    System.out.println("商品价格格式错误,请输入数值型数据!");
                    sc.next();
                    continue;
                }
                Goods goods=new Goods(goodsId,goodsName,goodsPrice);
                goodsMap.put(goodsId,goods);
                i++;
            }
            //遍历map输出商品信息
            System.out.println("商品的全部信息为:");
            Iterator<Goods> it=goodsMap.values().iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
            
            
        }
    
    }
  • 相关阅读:
    洛谷P2389 电脑班的裁员(区间DP)
    停更祭
    搜索 水题&&错误集锦
    模板——最小生成树prim算法&&向前星理解
    单源最短路dijkstra算法&&优化史
    模板——最小生成树kruskal算法+并查集数据结构
    卡常三连(快读快写+re)
    模板——STL队列
    起点
    《2016年十一月十三日周总结》
  • 原文地址:https://www.cnblogs.com/loveapple/p/11142406.html
Copyright © 2020-2023  润新知