针对JDK8中Map接口的特点
package com.javamap;
import java.util.HashMap;
public class JavaMap {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("no1", "Lilei");
hashMap.put("no2", "LiPing");
hashMap.put(null, null);
System.out.println(hashMap);
System.out.println(hashMap.get(null));
}
}
output:
{no2=LiPing, null=null, no1=Lilei}
null
package com.javamap;
import java.util.HashMap;
public class JavaMap {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("no1", "Lilei");
hashMap.put("no2", "LiPing");
hashMap.put(null, null);
hashMap.put("no3", new Book("yyyy", 100));
System.out.println(hashMap);
System.out.println(hashMap.get(null));
hashMap.remove(null);
System.out.println(hashMap);
System.out.println(hashMap.size());
System.out.println(hashMap.isEmpty());
System.out.println(hashMap.containsKey("no2"));
hashMap.clear();
System.out.println(hashMap);
}
}
class Book{
private String bookname;
private double price;
public Book(String bookname, double price) {
this.bookname = bookname;
this.price = price;
}
}
output:
{no2=LiPing, null=null, no1=Lilei, no3=com.javamap.Book@1b6d3586}
null
{no2=LiPing, no1=Lilei, no3=com.javamap.Book@1b6d3586}
3
false
true
{}
先来看一下遍历的时候涉及到的方法:
package com.javamap;
import java.util.HashMap;
import java.util.Set;
public class JavaMapIter {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("no1", "Lilei");
hashMap.put("no2", "LiPing");
hashMap.put("no3", "Zhang");
hashMap.put("no4", "Zhao");
Set set = hashMap.keySet();
for (Object key : set) {
System.out.println(key + " " + hashMap.get(key));
}
}
}
output:
no2 LiPing
no1 Lilei
no4 Zhao
no3 Zhang
迭代器:
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next + " " + hashMap.get(next));
}
Collection values = hashMap.values();
//增强for循环
for (Object value : values) {
System.out.println(value);
}
//迭代器
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next);
}
tips:
在获取到entrySet之后,需要将其转成Map.Entry,因为它提供了getkey()和getvalue()方法,这样就可以获取到Key
和Value了。
package com.javamap;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
public class JavaMapIter {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("no1", "Lilei");
hashMap.put("no2", "LiPing");
hashMap.put("no3", "Zhang");
hashMap.put("no4", "Zhao");
package com.javamap;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class JavaMapIter {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put("no1", "Lilei");
hashMap.put("no2", "LiPing");
hashMap.put("no3", "Zhang");
hashMap.put("no4", "Zhao");
Set set = hashMap.entrySet();
for (Object o : set) {
Map.Entry oe = (Map.Entry) o;
System.out.println(oe.getKey() + " " + oe.getValue());
}
}
}
}
}
output:
no2 LiPing
no1 Lilei
no4 Zhao
no3 Zhang