一、Map集合结构
Map有两个非接口型子类:Hashtable、AbstractMap
Hashtable有:Properties实现方法
AbstractMap有:HashMap、TreeMap实现方法
下面详述讲解HashMap集合中的方法与遍历
二、如何创建HashMap对象?
import java.util.HashMap;
public class MapHash {
public static void main(String[] args) {
HashMap map =new HashMap();
}
}
注:HashMap集合中的泛型为Key-Value型,一次输入两个类型的数据,Key充当名字,Value充当数据进行储存
注:泛型不可以使用基本类型,但是可以把基本类型进行包装从而被使用,包装关系如下:
int->Integer float->Float short->Short byte->Byte double->Double boolean->Boolean char->Character
三、HashMap方法总结
1、put( , )方法 将 key-value 类型输入到HashMap集合中
get( key )方法 输入泛型中的key,输出Value;
size( )方法 输出key-value的个数;
import java.util.HashMap;
public class MapHash {
public static void main(String[] args) {
HashMap map =new HashMap();
map.put("Tom", 100);
map.put("Jim", 99);
System.out.println(map.size());
System.out.println(map.get("Tom"));
}
}
如上图代码,结果是: 2 100
先是将两个Key-Value输入进集合,在输出集合长度,最后通过Key找到相应的Value值
2、clear();清空
isEmpty();判断是否为空
remove(key);移除某一项并且返回key对应的value
import java.util.HashMap;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
System.out.println(map.remove("Tom"));
map.clear();
System.out.println(map.isEmpty());
}
}
返回的结果为: 100 true
四、HashMap遍历
1.values():将HashMap中的value导出为Collection<>的变量
import java.util.Collection;
import java.util.HashMap;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
Collection con =map.values();
for (int i : con) {
System.out.println(i);
}
}
}
此时输出 100 99 ,这里要注意自动拆箱:Integer 自动装换成 int 类型的常量
2、keySet() 返回Map集合中所有key组成的Set集合
import java.util.HashMap;
import java.util.Set;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
Set set =map.keySet();
for (String letters : set) {
System.out.println(letters+" "+map.get(letters));
}
}
}
如图使用get(key)的方法同时输出key——value整体
使用Iterator
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
Set set =map.keySet();
Iterator iterator= set.iterator();
while(iterator.hasNext()) {
String key=iterator.next();
System.out.println(key+" "+map.get(key));
}
}
}
使用set中的iterator()方法进行输出
1.entrySet() 将Map集合每个key-value转换为一个Entry对象并返回由所有的Entry对象组成的Set集合
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
Set> set =map.entrySet();
for (Entry i : set) {
System.out.println(i.getKey()+" "+i.getValue());
}
}
}
Entry类中有两个方法: getKey() getValue () 可以将HashMap对象转换成Entry对象,这样可以直接调用
可以将Set对象转换为Iterator进行输出:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
public class Csdn {
public static void main(String[] args) {
HashMap map =new HashMap<>();
map.put("Tom", 100);
map.put("Jim", 99);
Set> set =map.entrySet();
Iterator> iterator =set.iterator();
while(iterator.hasNext()) {
Entry en=iterator.next();
System.out.println(en.getKey()+" "+en.getValue());
}
}
}
使用Iterator的对象要和set中的对象进行进行输出