集合框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合框架 相关的知识,希望对你有一定的参考价值。

1 Map集合概述

  • Map一次存储一对元素,Collection一次添加一个元素。
  • Map也称为双列集合,Collection也称为单列集合。
  • Map存储的是键值对。
  • Map集合必须保证键的唯一性。

 

2 Map的常用方法

  • 添加
    • 将指定的值与此映射中的指定键关联  
V put(K key,V value)
    • 从指定映射中将所有映射关系赋值到此映射中  
void putAll(Map<? extends K,? extends V> m)

 

  • 删除
    • 清空
void clear()
    • 如果存在一个键的映射关系,则将其从此映射关系中移除  
V remove(Object key)

  

  • 判断
    • 如果此映射包含指定键的映射关系,则返回true  
boolean containsKey(Object key)
    • 如果此映射将一个或多个键映射到指定的值,则返回true  
boolean containsValue(Object value)
    • 比较指定的对象与此映射是否相等
boolean equals(Object o)
    • 如果此映射没有包含键-值映射关系,则返回true  
boolean isEmpty()

 

  • 获取
    • 返回此映射中包含的映射关系的Set集合  
Set<Map.Entry<K,V>> entrySet()
    • 返回指定的键所映射的值  
V get(Object key)
    • 返回此映射中包含键的Set集合  
Set<K> keySet()
    • 返回此映射中的键-值映射关系数  
int size()
    • 返回此映射中包含的值的Collection集合  
Collection<V> values()

 

  • 示例:添加元素
package java16;

import java.util.HashMap;
import java.util.Map;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");

        System.out.println(map);



    }
}

技术分享

  • 示例:删除元素
package java16;

import java.util.HashMap;
import java.util.Map;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");

        //删除元素
        map.remove(1);

        System.out.println(map);



    }
}

技术分享

 

  • 示例:判断键
package java16;

import java.util.HashMap;
import java.util.Map;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");


        //判断
        System.out.println(map.containsKey(1));



    }
}

技术分享

 

  • 示例:根据键获取值
package java16;

import java.util.HashMap;
import java.util.Map;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");


        System.out.println(map.get(1));



    }
}

技术分享

 

  • 示例:通过keySet来获取所有键值对
package java16;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");


        Set<Integer> keySet = map.keySet();

        for(Iterator<Integer> iterator = keySet.iterator();iterator.hasNext();){
            Integer key = iterator.next();
            String value = map.get(key);
            System.out.println(key +":" + value);

        }



    }
}

技术分享

 

  • 示例:通过entrySet来获取Map中的所有键值对
package java16;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 2017/10/8
 * 说明:
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();

        //添加元素
        map.put(1,"张三");
        map.put(2,"李四");


        Set<Map.Entry<Integer,String>> keyValues = map.entrySet();
        for(Iterator<Map.Entry<Integer,String>> iterator = keyValues.iterator();iterator.hasNext();){
            Map.Entry<Integer,String> keyValue = iterator.next();
            Integer key = keyValue.getKey();
            String value = keyValue.getValue();
            System.out.println(key +":" +value);

        }


    }
}

技术分享

3 Map常用子类

  • HashTable:内部结构是哈希表,是同步的。不允许null作为键或值。
  • HashMap:内部结构是哈希表,不是同步的,允许null作为键或值。
  • TreeMap:内部结构是二叉树,不是同步的,可以对Map集合中的键进行排序。

 

以上是关于集合框架 的主要内容,如果未能解决你的问题,请参考以下文章

text 来自Codyhouse框架的Browserlist片段源代码

金蝶handler中 collection 代码片段理解

Alfred常见使用

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

比较 C# 中的字符串片段并从集合中删除项目

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]