您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第13章:Java类集】_Map接口
发布时间:2021-01-03 12:35:44编辑:雪饮阅读()
HashMap的put与get操作
HashMap就是键值对的形式存在的
put则就是接收一对键值对,get则是根据key获取对应val
import java.util.HashMap;
import java.util.Map;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
map.put("snowDrink","雪饮");
String val=map.get("momiji");
System.out.println("根据key‘momiji’取出的值:"+val);
}
}
当对应key不存在时候,则get取出的就是null
import java.util.HashMap;
import java.util.Map;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
String val=map.get("snowDrink");
System.out.println("根据key‘snowDrink’取出的值:"+val);
}
}
D:\>javac TestJava.java
D:\>java TestJava
根据key‘snowDrink’取出的值:null
containsKey可以判断当前map里面是否存在某key
containsValue可以判断当前map里面是否存在某val
import java.util.HashMap;
import java.util.Map;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
if(map.containsKey("snowDrink")){
System.out.println("搜索的key存在!");
}
else{
System.out.println("搜索的key不存在!");
}
if(map.containsValue("红叶")){
System.out.println("搜索的value存在!");
}
else{
System.out.println("搜索的value不存在!");
}
}
}
D:\>javac TestJava.java
D:\>java TestJava
搜索的key不存在!
搜索的value存在!
keySet可以获取map中的所有key并且可以利用Set接口进行Iterator迭代
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Iterator ;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
map.put("snowDrink","雪饮");
Set<String> keys=map.keySet();
Iterator<String> iter=keys.iterator();
while(iter.hasNext()){
String str=iter.next();
System.out.println(str);
}
}
}
D:\>javac TestJava.java
D:\>java TestJava
snowDrink
momiji
ayane
kasumi
values可以获取map中的所有val,并可以利用Collection接口进行Iterator迭代
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator ;
import java.util.Collection;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
map.put("snowDrink","雪饮");
Collection<String> keys=map.values();
Iterator<String> iter=keys.iterator();
while(iter.hasNext()){
String str=iter.next();
System.out.println(str);
}
}
}
D:\>javac TestJava.java
D:\>java TestJava
雪饮
红叶
凌音
霞
那么就可以一次性获取全部的key和val
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Iterator ;
import java.util.Collection;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new HashMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
map.put("snowDrink","雪饮");
System.out.println("----------全部key--------");
Set<String> keys=map.keySet();
Iterator<String> iterk=keys.iterator();
while(iterk.hasNext()){
String str=iterk.next();
System.out.println(str);
}
System.out.println("----------全部val--------");
Collection<String> values=map.values();
Iterator<String> iterv=values.iterator();
while(iterv.hasNext()){
String str=iterv.next();
System.out.println(str);
}
}
}
D:\>javac TestJava.java
D:\>java TestJava
----------全部key--------
snowDrink
momiji
ayane
kasumi
----------全部val--------
雪饮
红叶
凌音
霞
用TreeMap为Map实例化则map中所有key会被自动排序
import java.util.TreeMap;
import java.util.Map;
import java.util.Set;
import java.util.Iterator ;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new TreeMap<String,String>();
map.put("kasumi","霞");
map.put("ayane","凌音");
map.put("momiji","红叶");
map.put("snowDrink","雪饮");
Set<String> keys=map.keySet();
Iterator<String> iterk=keys.iterator();
while(iterk.hasNext()){
String str=iterk.next();
System.out.println(str+"-->"+map.get(str));
}
}
}
D:\>javac TestJava.java
D:\>java TestJava
ayane-->凌音
kasumi-->霞
momiji-->红叶
snowDrink-->雪饮
用WeakHashMap为Map实例化则map中的键值对会在JVM回收后就丢失
为了验证这个,所以我们就要建立一大堆的堆内存咯,做为key与val。
import java.util.WeakHashMap;
import java.util.Map;
public class TestJava{
public static void main(String args[]){
Map<String,String> map=new WeakHashMap<String,String>();
map.put(new String("kasumi"),new String("霞"));
map.put(new String("ayane"),new String("凌音"));
map.put(new String("momiji"),new String("红叶"));
map.put(new String("snowDrink"),new String("雪饮"));
System.gc();
map.put(new String("lisa"),new String("丽莎"));
System.out.println(map);
}
}
D:\>javac TestJava.java
D:\>java TestJava
{lisa=丽莎}
这种情况被称为弱引用
关键字词:java,Map