特点
一个列包含两个元素(key,value)
key,value类型可以相同也可以不同
key的值不允许重复,value的值可以重复
key,value是一一对应
基本函数
import java.util.HashMap;
public class Hashmap {
//Hashmap
//查询速度快
//存储是无序的
//LinkedHashMap
//区别在于它存储是有序的
public static void main(String[] args) {
HashMap Map=new HashMap();
//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 table=new Hashtable<>();
//不能将null存储
//table.put(null,12);
table.put("a",12);
table.put("b",18);
table.put("c",15);
Set 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 Map = new HashMap();
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 set = Map.keySet();
for (String i : set) {
System.out.println(Map.get(i));
}
System.out.println("-----------");
Iterator 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 map = new HashMap();
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>set=map.entrySet();
Iterator>it=set.iterator();
while(it.hasNext()){
Map.Entry i=it.next();
System.out.println(i.getKey()+"="+i.getValue());
}
}
}