• java集合之Map_keySet_entrySet


    keySet()的使用:该方法返回的是一个key对象的Set<E>集合,通过该set集合的对象调用iterator方法返回一个迭代器,通过该迭代器可访问到set集合里面的key

            再调用HashMap集合里面的get(Object key);方法即可得到key值

    package collection;
    
    import java.util.*;
    
    public class MyMap2 {
    
        public static void main(String[] args) {
            Map<Person2,Contact2> m1 = new HashMap<Person2,Contact2>();
            Person2 p1 = new Person2(123,"张三");
            Person2 p2 = new Person2(12,"李四");
            Contact2 c1 = new Contact2(13199898778l,"河南");
            Contact2 c2 = new Contact2(15999898778l,"北京");
            m1.put(p1, c1);
            m1.put(p2, c2);
            Set<Person2> set1  = m1.keySet(); 
            Iterator<Person2> it1 = set1.iterator();
            while(it1.hasNext()){
                Person2    key = it1.next();
                Contact2 value = m1.get(key);
                System.out.println("key键:"+key);
                System.out.println("value值:"+value);
            }
            
        }
    
    }
    class Person2 {
        int id ;
        String name;
        public Person2(int id, String name) {
            //super();
            this.id = id;
            this.name = name;
        }
        @Override
        public String toString() {
            return "Person2 [id=" + id + ", name=" + name + "]";
        }
        
    }
    class Contact2{
        long telephont;
        String address;
        public Contact2(long telephont, String address) {
            //super();
            this.telephont = telephont;
            this.address = address;
        }
        @Override
        public String toString() {
            return "Contact2 [telephont=" + telephont + ", address=" + address + "]";
        }
    }
    View Code
    key键:Person2 [id=123, name=张三]
    value值:Contact2 [telephont=13199898778, address=河南]
    key键:Person2 [id=12, name=李四]
    value值:Contact2 [telephont=15999898778, address=北京]
    View Code

    entrySet()的使用:返回此映射中包含的映射关系的set试图——jdk1.6

              理解为返回Map.Entry<K,V>类的一个对象,K,V都是Map键值对中对应的属性,在Map.Entry中K又是该Map.Entry的一个属性,V也是Map.Entry的一个

              属性.通过返回的对象调用迭代器,才能访问到Map.Entry<K,V>里面的元素。

      代码如下:

     1 package collection;
     2 
     3 import java.util.*;
     4 
     5 
     6 public class MyMap_entrySet2 {
     7 
     8     public static void main(String[] args) {
     9         Map  m1 = new TreeMap(); 
    10         Person5 p1 = new Person5(1332,"xiaoming");
    11         Person5 p2 = new Person5(8332,"ahangsan");
    12         Contact5 c1 = new Contact5(13172673363l,"广州");
    13         Contact5 c2 = new Contact5(15172673363l,"杭州");
    14         m1.put(p1, c1);
    15         m1.put(p2, c2);
    16         //System.out.println(m1);
    17         Set<Map.Entry<Person5, Contact5>> map_entry = m1.entrySet();//获取Map.Entry的对象
    18         Iterator<Map.Entry<Person5, Contact5>> it = map_entry.iterator();//获取迭代器
    19         while(it.hasNext()){
    20         Person5 p =it.next().getKey();//通过迭代器访问Map.Entry里面的元素
    21         Contact5 c =(Contact5) m1.get(p);//key得到他的value
    22             System.out.println(p);
    23             System.out.println(c);
    24         }
    25     }
    26 
    27 }
    28 class Person5 implements Comparable {
    29     int id ;
    30     String name;
    31     public Person5(int id, String name) {
    32         //super();
    33         this.id = id;
    34         this.name = name;
    35     }
    36     public int compareTo(Object obj){
    37         Person5 p4 = (Person5)obj ;
    38             return this.name.compareTo(p4.name);//根据返回值,按照二叉树结构,进行存储。
    39     }                                            //P84《数据结构与算法分析java语言描述》佛罗里达国际大学    
    40     @Override
    41     public String toString() {
    42         return "Person5 [id=" + id + ", name=" + name + "]";
    43     }
    44     
    45 }
    46 class Contact5{
    47     long telephont;
    48     String address;
    49     public Contact5(long telephont, String address) {
    50         //super();
    51         this.telephont = telephont;
    52         this.address = address;
    53     }
    54     @Override
    55     public String toString() {
    56         return "Contact5 [telephont=" + telephont + ", address=" + address + "]";
    57     }
    58     
    59 }
    View Code
  • 相关阅读:
    CPU密集型、IO密集型
    打印在一行
    python多线程、线程锁
    WPS--world使用格式刷
    pycharm连接linux版python
    Pycharm连接windows上python
    一台windows主机上运行2个tomcat
    启动django应用报错 “Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。”
    ORA-03206,当表空间不够时,如何以添加数据文件的方式扩展表空间
    利用拷贝data目录文件的方式迁移mysql数据库
  • 原文地址:https://www.cnblogs.com/huxuebing/p/5754667.html
Copyright © 2020-2023  润新知