[Java学习笔记]增强for循环和Map的两种读取方式

一、Iterator迭代器方法

1、keySet方法

2、entrySet方法

二、增强for循环

1、keySet方法

2、entrySet方法

先看写法:

for(类型 循环元素名称 : 循环对象){

}

迭代器方法:

1、

public static void main(String[] args) {
		Map info = new LinkedHashMap<>();
		info.put("1", "张三");
		info.put("2", "李四");
		info.put("3", "王二麻子");
		
		Set set = info.keySet();
		Iterator iterator = set.iterator();
		while(iterator.hasNext()){
			String key = (String)iterator.next();
			String name = (String)info.get(key);
			System.out.println(key + "=" + name);
		}
	}
2、

Set set = info.entrySet();
		Iterator iterator = set.iterator();
		while(iterator.hasNext()){
			Map.Entry entry = (java.util.Map.Entry) iterator.next();
			String key = (String) entry.getKey();
			String name = (String)entry.getValue();
			System.out.println(key + "=" + name);

for循环方法

1、

	public static void main(String[] args) {
		Map info = new LinkedHashMap<>();
		info.put("1", "张三");
		info.put("2", "李四");
		info.put("3", "王二麻子");
		for (Object obj : info.keySet()){
			String key = (String) obj;
			String name = (String) info.get(key);
			System.out.println(key + "=" + name);
		}
2、

	public static void main(String[] args) {
		Map info = new LinkedHashMap<>();
		info.put("1", "张三");
		info.put("2", "李四");
		info.put("3", "王二麻子");
		
		for(Object obj:info.entrySet()){
			Map.Entry entry = (java.util.Map.Entry) obj;
			String key = (String) entry.getKey();
			String name = (String) entry.getValue();
			System.out.println(key + "=" + name);
		}
tips:增强for只能用于取数据,在for循环内对循环元素的赋值不会影响其原值。要修改用传统方法。

e.g:

ArrayList<String> arr = new ArrayList<>();
		arr.add("赵");
		arr.add("钱");
		arr.add("孙");
		for (String i:arr ){
			i = "李";
		}
		System.out.println(arr.get(0));
		System.out.println(arr.get(1));
		System.out.println(arr.get(2));
输出结果仍是赵钱孙。

传统方法:

		int[] arr = {1,2,3};
		for (int i = 0;i < arr.length;i++){
			arr[i] = 10;
		}
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);

输出10,10,10

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值