码迷,mamicode.com
首页 > 编程语言 > 详细

java_Map集合

时间:2019-07-19 20:41:47      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:实现类   shc   lis   ring   哈希   舞台   system   结合   子类   

 1 import java.util.HashMap;
 2 
 3 public class MapTest {
 4 /**
 5  * 1.Map集合是双列几个,一个元素包含两个值(key,value)
 6  * 2.Map集合中的元素,key和value的数据类型可以相同也可以不同
 7  * 3.Map集合中的元素Key不可以重复,value可以重复
 8  * 4.Map集合中的元素,key和value一一对应
 9  *
10  * 常用实现类:
11  * java.tuil.hashMap<k,v>集合,implements Map<k,v>接口
12  * 1。hashMap集合底层是哈希表,查询的速度特别快
13  *             jdk1.8前:数组+单向链表
14  *             jdk1.8后:数组+单项链表/红黑树
15  * 2.hashMap是无序集合
16  *
17  * LinkedHashMap特点:
18  * 1.LinkedHashMap集合迪底层是哈希表+链表
19  * 2.LinkedHashMap集合是一个有序的集合,储存元素和取出元素的顺序是一致的
20  *
21  * 方法:
22  * put(k,v):添加,返回v:key不重复返回v是null,key重复会替换value返回被替换值
23  * remove(object key):把指定键对应的value删除,返回删除元素,key存在返回v,key不存在返回null
24  * get(k):k存在返回value,k不存在返回null
25  * containskey(k):判断是否包含k,包含返回true,不包含返回false
26  */
27 public static void main(String[] args) {
28     HashMap<String, String> hashMap = new HashMap<>();
29     String put1 = hashMap.put("杨过", "小龙女");
30     String put2 = hashMap.put("冷锋", "龙小云");
31     String put3 = hashMap.put("A", "B");
32     System.out.println("put1:"+put1);
33     System.out.println("put2:"+put2);
34     System.out.println("put3:"+put3);
35     System.out.println(hashMap);
36     System.out.println(hashMap.get("杨过"));
37     hashMap.remove("杨过");
38     System.out.println(hashMap);
39     System.out.println(hashMap.containsKey("杨过"));
40 
41 }
 1  /**
 2  * 遍历:
 3  * keySet():所有key添加到set集合中
 4  * 遍历set集合获取map结合中的每一个key
 5  * 通过getkey找到value
 6  */
 7  public static void main(String[] args) {
 8      HashMap<String, String> hashMap = new HashMap<>();
 9      String put1 = hashMap.put("杨过", "小龙女");
10      String put2 = hashMap.put("冷锋", "龙小云");
11      String put3 = hashMap.put("A", "B");
12      Set<String> strings = hashMap.keySet();
13      for (String string : strings) {
14          System.out.println(hashMap.get(string));
15      }
16  }
 1  /** Entry键值对对象被:
 2       * 在map接口中有一个内部类接口Entry
 3       * 作用:当map结合一创建,就在map集合中创建一个Entry对象,用来记录键与值(键值对对象,键与值的映射关系)
 4       * 方法:
 5       * entrySet():把map集合内部的多个Entry对象取出来存储到一个Set集合中
 6       * getkey
 7       * getvalue
 8       */
 9      public static void main(String[] args){
10          HashMap<String, String> hashMap = new HashMap<>();
11          String put1 = hashMap.put("杨过", "小龙女");
12          String put2 = hashMap.put("冷锋", "龙小云");
13          String put3 = hashMap.put("A", "B");
14          Set<Map.Entry<String, String>> entries = hashMap.entrySet();
15          for (Map.Entry<String, String> entry : entries) {
16              System.out.println(entry.getKey());
17              System.out.println(entry.getValue());
18          }
19      }
20 }
 1  /** hashMap:存储自定义类型键值
 2       * map集合保证key是唯一的:作为key元素必须重写hashCode和equals方法保证key的唯一性
 3       *
 4       * LinkedHashMap entends HashMap
 5       * 哈希表+链表
 6       * key不允许重复,有序集合
 7       *
 8       *
 9       * Hashtable集合 implements Map接口
10       * 底层是哈希表,是线程安全的速度慢
11       *Hashtable集合不能储存null值,null键
12       * Hashtable和vector集合一样,在jdk1.2版本之后被先进的集合(HashMap,ArrayList)取代了
13       *Hashtable的子类properties一样活跃在历史舞台
14       * properties集合是一个唯一和IO流相结合的集合
15       *
16       * Map集合练习:
17       * 需求:计算一个字符串中每个字符出现的个数
18       * 1.使用Scanner获取用户输入字符串
19       * 2.创建Map集合,key是字符串中的字符,value是字符个数
20       * 3.遍历字符串,获取每一个字符
21       * 4.使用获取到的字符去Mao集合中判断key是否存在
22       *      如果存在:
23       *          通过key获取value并++
24       *      如果不存在:
25       *          put(k,1)
26       * 5.遍历集合
27       *
28       * jdk9对集合添加的优化:
29       * list接口,Set接口,Map接口:增加一个静态的方法of,可以给集合一次添加多个元素
30       * 使用前提:当几个中存储的元素的个数已经确定了,不在改变
31       * 注意事项:
32       *      1.of方法只适用于List接口,Set接口,Map接口,不适用于接口的实现类
33       *      2.of方法的返回值是一个不能改变的集合,集合不能在使用add,put方法添加元素,会抛出异常
34       *      3.Set接口和Map接口在调用of方法时不能有重复元素,否则会抛出异常
35       *
36       *
37       */

 

java_Map集合

标签:实现类   shc   lis   ring   哈希   舞台   system   结合   子类   

原文地址:https://www.cnblogs.com/aikang525/p/11215430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!