zoukankan      html  css  js  c++  java
  • 集合03

    1.Set

    1.1  特点:无序、对象不能重复(eqauls)     eqauls从Object继承,默认比较地址

     不可重复:输出值为4                    

    public static void main(String[] args) {
            Set<String> set=new HashSet<>();
            set.add("zs");
            set.add("is");
            set.add("ww");
            set.add("qq");
            set.add("zs");
            System.out.println(set.size());
        }

    无序:自然排序(A-Z)

    public static void main(String[] args) {
            Set<String> set=new HashSet<>();
            set.add("zs");
            set.add("is");
            set.add("ww");
            set.add("qq");
            set.add("zs");            
        Iterator<String>     it=set.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
        System.out.println("--------------------");
        for(String s:set) {
            System.out.println(s);
            
        }
        }

    equals:比较的是内存的地址,而不是对象的属性(返回为false)

    Set<Person> s=new HashSet<>();
            System.out.println(new Person(1,"zs",18));
            System.out.println(new Person(1,"zs",18));
            System.out.println(new Person(1,"zs",18).equals(new Person(1,"zs",18)));
    //        s.add(new Person(1,"zs",18));
    //        s.add(new Person(2,"zs",18));
    //        s.add(new Person(3,"zs",18));
    //        s.add(new Person(4,"zs",18));
    //        s.add(new Person(5,"zs",18));
            System.out.println(s.size());
            

    Person类:重写HashCode和equals(返回为false)

    ......................
    @Override
        public int hashCode() {
            
            return this.sid+this.sage;
        }
        @Override
        public boolean equals(Object obj) {
            return super.equals(obj);
        }
        

    Person类:重写HashCode和equals(完成全部),判断(false  turn)

        @Override
        public boolean equals(Object obj) {
            boolean flag=false;
            //判断当前对象的类型(所属的自定义类的名称)
            if(obj instanceof Person) {
                Person p=(Person) obj;
                if (this.sid==p.sid) {
                    if (this.sage==p.sage) {
                        if (this.sname==p.sname) {
                            flag=true;
                            
                        }
                        
                    }
                    
                }
                
            }
            return flag;
        }
        

    自然排序器:

    //自然排序器
        Set<Person> s=new TreeSet<>();
        s.add(new Person(1,"zs",18));
        s.add(new Person(2,"zb",19));
        s.add(new Person(3,"ww",20));
        s.add(new Person(4,"ls",21));
        s.add(new Person(5,"wx",22));
        
        for(Person p:s) {
            //默认转换为String的类型
            System.out.println(p);
        }
        
    //person 类
    @Override
        public int compareTo(Person o) {
            // TODO Auto-generated method stub
            
            return this.sid-o.sid;
        }

    自定义排序器:新建一个类实现接口 永远返回的是int 

    public class sage implements Comparator<Person>{
    
        @Override
        public int compare(Person o1, Person o2) {
            // TODO Auto-generated method stub
            return o1.getSage()-o2.getSage();
        }
    
    }

    2.Map

    键值对  json格式 根据键名来获取对应的值

        public static void main(String[] args) {
            Map<String, Object>  map=new HashMap<>();
            map.put("zh", "中国");
            map.put("jp", "小日本");
            map.put("ua", "美国");
            map.put("EN", "英国");
            System.out.println(map);
        }
        
    }

    1, 重复的key会有什么样子的问题:key相同则覆盖values的值 以最后加入进去的值为真({jp=小日本, EN=英国, ua=美国, zh=大中国})

     public static void main(String[] args) {
            Map<String, Object>  map=new HashMap<>();
            map.put("zh", "中国");
            map.put("jp", "小日本");
            map.put("ua", "美国");
            map.put("EN", "英国");
             map.put("zh", "大中国");
            System.out.println(map);
        }
        
    }

    Entry: 代表单独的 ,每一个的,小的,元素

    Map<Integer, Object> map=new HashMap<>();
            //避免出现重复的键
            for(int i=0; i<10; i++) {
                if(!map.containsKey(i)) {
                    map.put(i, "z"+i);
                }
            }
            for(Entry<Integer, Object> emp:map entrySet()) {
                System.out.println("key"+emp.getKey()+"values:"+emp.getValue());
                
            }
            System.out.println(map);
        }
        
  • 相关阅读:
    Web安全学习笔记之更新kali国内源
    K8S学习笔记之二进制的方式创建一个Kubernetes集群
    K8S学习笔记之Kubernetes核心概念
    K8S学习笔记之修改K8S的api-server证书
    Docker学习笔记之Copy on Write机制
    ELK学习笔记之简单适用的ES集群监控工具cerebro安装使用
    ELK学习笔记之F5利用EELK进行应用数据挖掘系列(2)-DNS
    ELK学习笔记之F5利用ELK进行应用数据挖掘系列(1)-HTTP
    ELK学习笔记之F5-HTTP-requesting-logging logstash filter
    Debian 无线网卡驱动问题
  • 原文地址:https://www.cnblogs.com/xcn123/p/10905035.html
Copyright © 2011-2022 走看看