工作内容:
java集合Map<K,V>,HashMap<K,V>的使用
学习分享:
Map<K,V>
HashMap<K,V>:键值对,键值唯一,存储时(调用put(K,V)方法)键值与已有的键值相同,则新的V值覆盖原V值。
Set<String> keys = map.keySet();//返回此映射中所包含的键的 Set 视图。keys会随着map的变化而变化
Set<Integer> keySet = map.keySet();
Map.put或map.remove操作,看keySet是否跟着变化
Iterator<Integer> keys= keySet.iterator();
while (keys.hasNext()) {
System.out.println(map.get(keys.next()));
}
For循环理解
循环语句:for([表达式1];[表达式2],[表达式3]){循环体4 }【分号一个都不能少】
1.执行步骤:1→2→4→3→2→4→...
2.当1不存在时:继续往后执行
3.当2不存在时或者是true时:默认for语句可以永远执行下去,遇到break,return则退出循环。
4.当3不存在时,需在2后面添加“;”
测试用例:
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "花花");
map.put(2, "草草");
map.put(3, "叶叶");
map.put(4, "瓶瓶");
map.put(4, "新瓶瓶");
System.out.println(map);
Set<Integer> keySet = map.keySet();
// 测试keyset是否是会跟随map的变化而变化
// 结果:是
map.put(5, "点点");
map.remove(2);
Iterator<Integer> keys = keySet.iterator();
while (keys.hasNext()) {
System.out.println(map.get(keys.next()));
}
Set<Entry<Integer, String>> entries = map.entrySet();
for (Entry<Integer, String> entry : entries) {
System.out.println(entry);
}
// 获取value
Collection<String> collection = map.values();
System.out.println(collection);
// 使用for-each输出value值
for (String string : collection) {
System.out.println(string);
}
System.out.println("使用迭代器遍历:");
// for语句的使用for(表达式1;表达式2;表达式3){ 内容4 }
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
String[] name = { "tym", "cww", "tym", "flj", "tym", "flj" };
Map<String, Integer> map2 = new HashMap<String, Integer>();
// 在添加过程中,把value设置为出现的次数
for (int i = 0; i < name.length; i++) {
if (!map2.containsKey(name[i])) {
map2.put(name[i], 1);
} else {
map2.put(name[i], map2.get(name[i]) + 1);
}
}
System.out.println(map2);
}
}