import java.util.*;
public class MapTest {
// HashMap中的key是无序且不可重复的?那么HashMap如何保证其key无序且不可重复呢?
// 参见HasSet如何来保证数据无序且不可重复!因为HashSet就是用HashMap来实现的
public static void testHashMap() {
Map<String, String> map = new HashMap<String, String>();
// 向Map集合中添加数据
map.put("aa", "Hello1");
map.put("dd", "Hello1");
map.put("cc", "Hello2");
map.put("tt", "Hello3");
map.put("ff", "Hello7");
map.put("aa", "NewHello1"); // 当key重复的时候,新的value会覆盖原来的value
System.out.println("集合中数据的对数:" + map.size());
// 从集合中查询数据
System.out.println("集合中是否有key = dd ? " + map.containsKey("dd"));
System.out.println("集合中是否有vlaue = Hello2 ? "
+ map.containsValue("Hello2"));
System.out.println("=====================================");
// 遍历集合
// 方式1:取出集合中所有的vlaue,保存到一个Collection中
Collection<String> coll = map.values();
for (String value : coll) {
System.out.println(value);
}
System.out.println("=====================================");
// 方式2:取出集合中所有的key,保存到一个Set中(实际上是HashSet)
Set<String> set = map.keySet();
for (String key : set) {
// 根据key取得value
String value = map.get(key);
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 方式3:取出集合中所有的Entry(Entry中一个key,一个value),保存到一个Set中
Set<Map.Entry<String, String>> set1 = map.entrySet();
Iterator<Map.Entry<String, String>> it1 = set1.iterator();
while (it1.hasNext()) {
Map.Entry<String, String> entry = it1.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 从Map集合中删除数据.通过key来删除这对数据,返回的是该key对应的value
String value = map.remove("cc");
System.out.println("数据删除成功,返回的结果是:" + value);
System.out.println("集合中数据的对数:" + map.size());
}
// TreeMap中key是不可重复但是可以排序的.那么TreeMap如何保证其key不可重复并且可以排序呢?
// 参见TreeSet如何保证数据不可重复并且可以排序!因为TreeSet就是用TreeMap来实现的
public static void testTreeMap() {
Map<String, String> map = new TreeMap<String, String>();
// 向Map集合中添加数据
map.put("aa", "Hello1");
map.put("dd", "Hello1");
map.put("cc", "Hello2");
map.put("tt", "Hello3");
map.put("ff", "Hello7");
map.put("aa", "NewHello1"); // 当key重复的时候,新的value会覆盖原来的value
System.out.println("集合中数据的对数:" + map.size());
// 从集合中查询数据
System.out.println("集合中是否有key = dd ? " + map.containsKey("dd"));
System.out.println("集合中是否有vlaue = Hello2 ? "
+ map.containsValue("Hello2"));
System.out.println("=====================================");
// 遍历集合
// 方式1:取出集合中所有的vlaue,保存到一个Collection中
Collection<String> coll = map.values();
for (String value : coll) {
System.out.println(value);
}
System.out.println("=====================================");
// 方式2:取出集合中所有的key,保存到一个Set中(实际上是TreeSet)
Set<String> set = map.keySet();
for (String key : set) {
// 根据key取得value
String value = map.get(key);
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 方式3:取出集合中所有的Entry(Entry中一个key,一个value),保存到一个Set中
Set<Map.Entry<String, String>> set1 = map.entrySet();
Iterator<Map.Entry<String, String>> it1 = set1.iterator();
while (it1.hasNext()) {
Map.Entry<String, String> entry = it1.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 从Map集合中删除数据.通过key来删除这对数据,返回的是该key对应的value
String value = map.remove("cc");
System.out.println("数据删除成功,返回的结果是:" + value);
System.out.println("集合中数据的对数:" + map.size());
}
public static void testHashtable() {
Map<String, String> map = new Hashtable<String, String>();
// 向Map集合中添加数据
map.put("aa", "Hello1");
map.put("dd", "Hello1");
map.put("cc", "Hello2");
map.put("tt", "Hello3");
map.put("ff", "Hello7");
map.put("aa", "NewHello1"); // 当key重复的时候,新的value会覆盖原来的value
System.out.println("集合中数据的对数:" + map.size());
// 从集合中查询数据
System.out.println("集合中是否有key = dd ? " + map.containsKey("dd"));
System.out.println("集合中是否有vlaue = Hello2 ? "
+ map.containsValue("Hello2"));
System.out.println("=====================================");
// 遍历集合
// 方式1:取出集合中所有的vlaue,保存到一个Collection中
Collection<String> coll = map.values();
for (String value : coll) {
System.out.println(value);
}
System.out.println("=====================================");
// 方式2:取出集合中所有的key,保存到一个Set中(实际上是HashSet)
Set<String> set = map.keySet();
for (String key : set) {
// 根据key取得value
String value = map.get(key);
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 方式3:取出集合中所有的Entry(Entry中一个key,一个value),保存到一个Set中
Set<Map.Entry<String, String>> set1 = map.entrySet();
Iterator<Map.Entry<String, String>> it1 = set1.iterator();
while (it1.hasNext()) {
Map.Entry<String, String> entry = it1.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + " , value=" + value);
}
System.out.println("=====================================");
// 从Map集合中删除数据.通过key来删除这对数据,返回的是该key对应的value
String value = map.remove("cc");
System.out.println("数据删除成功,返回的结果是:" + value);
System.out.println("集合中数据的对数:" + map.size());
}
public static void main(String[] args) {
//testHashMap();
//testTreeMap();
testHashtable();
}
}