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());
}
}
}

浙公网安备 33010602011771号