Java中List,Set和Map的遍历方法

1.遍历List(三种方法)

这里以ArrayLsit为例演示

//		举例
		List<String> list = new ArrayList<String>();
		list.add("Tom");
		list.add("Tim");
		list.add("Lucy");
		
//		1.第一种方法:普通for循环遍历
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
//		2.第二种方法:加强for循环遍历
		for (String name : list) {
			System.out.println(name);	
		}
		
//		3.第三种方法:通过迭代器遍历
		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}

2.遍历Set(两种方法)

遍历set和遍历List但是因为Set中没有get(int index)方法,所以这里不能用普通的for循环遍历
这里以HashSet为例作为演示

		Set<Integer> nums = new HashSet<Integer>();
		nums.add(1);
		nums.add(2);
		nums.add(3);
		
//		1.加强for循环
		for (Integer num : nums) {
			System.out.println(num);
		}
		
//		2.迭代器遍历
		Iterator iterator = nums.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}

3.遍历Map

以HashMap为例作为演示

		Map<String, Integer> scores = new HashMap<String, Integer>();
		scores.put("tom", 100);
		scores.put("lucy", 80);
		int value;
//		1.1 增强for循环遍历Map中的key。
//		这里使用keySet()方法把Map中的key提取出来存储到一个名为keys的Set集合中
//		然后通过遍历keys集合,调用Map中的get(Object key)方法得到Map中key对应的value
		Set<String> keys = scores.keySet();
		for (String key : keys) {
			value = scores.get(key);
			System.out.println(value);
		}
		
//		1.2 使用迭代器遍历Set集合
//		同样调用Map中的get(Object key)方法得到Map中key对应的value
		Iterator<String> iterator = keys.iterator();
		while (iterator.hasNext()) {
			value = scores.get(iterator.next());
			System.out.println(value);
		}
		
		
//		使用把Entry存储HashMap中的键和值
		Set<Entry<String, Integer>> entries = scores.entrySet();
//		2.1 使用加强for循环遍历Set,直接用Entry的getKey()和getValue()方法得到键和值
		for (Entry<String, Integer> entry : entries) {
			String key = entry.getKey();
			value = entry.getValue();
			System.out.println("key: " + key);
			System.out.println("value: " + value);
		}
		
//		2.2 使用迭代器遍历Set得到每个Entry,再使用getKey()和getValue()得到键和值
		Iterator<Entry<String, Integer>> iterator2 = entries.iterator();
		while(iterator2.hasNext()) {
			Entry<String, Integer> entry  = iterator2.next();
			String key = entry.getKey();
			value = entry.getValue();
			System.out.println("key: " + key);
			System.out.println("value: " + value);
		}
//		这里注意:迭代器每执行一次next()方法,迭代器就会指向下一个元素
//		如果使用下面的方式打印,只会打印Map中第一个元素中的key和第二个元素的value
//		因为这里调用了两次next()方法
//		System.out.println("key: " + iterator2.next().getKey());
//		System.out.println("value: " + iterator2.next().getValue());

猜你喜欢

转载自blog.csdn.net/qq_35302939/article/details/89516192