Java集合Map<K,V>,HashMap<K,V>的使用,for循环正解

来源:互联网 发布:ledrom编辑软件 编辑:程序博客网 时间:2024/05/01 14:21

工作内容:

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.执行步骤:124324...

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);}// 获取valueCollection<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);}}


0 0