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

工作内容:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值