Java Map

特点

  • 一个列包含两个元素(key,value)
  • key,value类型可以相同也可以不同
  • key的值不允许重复,value的值可以重复
  • key,value是一一对应

基本函数

import java.util.HashMap;
public class Hashmap {
    //Hashmap
    //查询速度快
    //存储是无序的

    //LinkedHashMap
    //区别在于它存储是有序的
    public static void main(String[] args) {
        HashMap<String,Integer> Map=new HashMap<String, Integer>();
        //put(key,value)
        //添加元素,如果key已经存在则替换并返回被替换的value值
        Map.put("a",1);
        Map.put("b",2);
        Map.put("c",2);
        System.out.println(Map);
        Map.remove("a");
        System.out.println(Map);
        //判断key是不是存在
        System.out.println(Map.containsKey("a"));
        System.out.println(Map.get("b"));
    }
}

LinkedHashMap

记住Linked都是变成有顺序的就好。

Hasptable

与Hashmap区别
Hashtable不能将null值进行存储,他的操作是同步的既单线程集合速度慢
其子类Properties依然很有用,是唯一一个与IO流结合的集合

import java.util.HashSet;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Set;
public class hashtable {
    public static void main(String[] args) {
        Hashtable<String,Integer> table=new Hashtable<>();
        //不能将null存储
        //table.put(null,12);
        table.put("a",12);
        table.put("b",18);
        table.put("c",15);
        Set<String> set=table.keySet();
        for(String i :set){
            System.out.println(i+"="+table.get(i));
        }
    }
}

使用keyset进行遍历

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

public class Hashmap {
    public static void main(String[] args) {
        HashMap<String, Integer> Map = new HashMap<String, Integer>();
        Map.put("a", 1);
        Map.put("b", 2);
        Map.put("c", 8);
        Map.put("d", 9);
        Map.put("e", 15);
        Map.put("f", 16);
        Map.put("g", 17);
        //keyset() 将key元素保存在set中
        Set<String> set = Map.keySet();
        for (String i : set) {
            System.out.println(Map.get(i));
        }
        System.out.println("-----------");
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            String i = it.next();
            System.out.println(Map.get(i));
        }
    }
}

使用entryset遍历

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

public class Hashmap {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 8);
        map.put("d", 9);
        map.put("e", 15);
        map.put("f", 16);
        map.put("g", 17);
        //可以理解成map中有一个Entry类型,包含key和value
        //entryset()则为包含该类型的set
        Set<Map.Entry<String,Integer>>set=map.entrySet();
        Iterator<Map.Entry<String,Integer>>it=set.iterator();
        while(it.hasNext()){
            Map.Entry<String,Integer> i=it.next();
            System.out.println(i.getKey()+"="+i.getValue());
        }
    }
}


posted @ 2020-11-22 21:31  一个经常掉线的人  阅读(91)  评论(0)    收藏  举报