zoukankan      html  css  js  c++  java
  • ListSetAndMap

    package com.collection.test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    /**
     * Java中的list、set、map遍历总结
     * @author xiaoyin
     *
     */
    public class ListSetAndMap {
    
    	public static void main(String[] args) {
    		// List集合的遍历  
    		testList();
    		// Set集合的遍历  
    		testSet();
    		// Map集合的遍历  
    		testMap();
    	}
    
    	/**
         * 遍历map集合的方法:
         * 1.使用keySet()获得key的set集合,然后使用Iterator迭代器或foreach遍历set即可,但是只能直接取出key,再通过key取出value,两种方法
         * 2.使用entrySet()获得key-value的set集合,然后使用Iterator迭代器或foreach遍历set即可,可同时取出key和value,两种方法
         */
    	private static void testMap() {
    		Map<String, String> maps = new HashMap<>();
    		maps.put("001", "Java");
    		maps.put("002", "Spring");
    		maps.put("003", "SpringMVC");
    		maps.put("004", "Mybatis");
    		
    		// Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合
    		Set<String> keySet = maps.keySet();
    		for (String ss : keySet) {
    			String key = ss;
    			String value = maps.get(ss);
    			System.out.println(key + ":" + value);
    		}
    		// Map遍历方法1-2:  使用keySet得到key的Set集合,再使用Iterator迭代器遍历
    		Iterator<String> iterator = keySet.iterator();
    		while (iterator.hasNext()) {
    			String key = iterator.next();
    			String value = maps.get(key);
    			System.out.println(key + ":" + value);
    		}
    		// Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可
    		Set<Entry<String, String>> entrySet = maps.entrySet();
    		for (Entry<String, String> entry : entrySet) {
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key + ":" + value);
            }
    		// Map遍历方法2-2: 使用entrySet()获得key-value的Set集合,然后使用Iterator迭代器遍历
            Iterator<Entry<String, String>> entryIt = entrySet.iterator();
            while (entryIt.hasNext()) {
                Map.Entry<String, String> entry = (Entry<String, String>) entryIt.next();
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key + " : " + value);
            }
    	}
    
    	/**
    	 * 遍历Set集合的方法:
         * 1.使用foreach遍历
         * 2.使用Iterator迭代器
         * 3.将Set集合转换为List再遍历
    	 */
    	private static void testSet() {
    		Set<String> set = new HashSet<>();
    		set.add("Set111");
    		set.add("Set222");
    		set.add("Set333");
    		set.add("Set444");
    		
    		// 2-1 使用foreach遍历
    		for (String value : set) {
    			System.out.println(value);
    		}
    		// 2-2 使用Iterator迭代器
    		Iterator<String> iterator = set.iterator();
    		while(iterator.hasNext()){
    			String value = iterator.next();
    			System.out.println(value);
    		}
    		// 2-3 将Set集合转换为List再遍历
    		List<String> setList = new ArrayList<>(set);//set转list
    		// 遍历方法 (可用list遍历方式去遍历)
    		for (String value : setList) {
    			System.out.println(value);
    		}
    	}
    
    	/**
    	 * 遍历List集合的方法:
    	 * 1.使用for循环遍历
         * 2.使用Iterator迭代器
         * 3.使用foreach遍历
    	 */
    	private static void testList() {
    		List<String> list = new ArrayList<>();
    		list.add("林徽因");
    		list.add("陆小曼");
    		list.add("阮玉玲");
    		list.add("周璇");
    		
    		// 1-1 使用for循环遍历
    		for (int i = 0; i < list.size(); i++) {
    			String value = list.get(i);
    			System.out.println(value);
    		}
    		// 1-2 使用Iterator循环遍历
    		for(Iterator<String> iterator = list.iterator();iterator.hasNext();){
    			String value = iterator.next();
    			System.out.println(value);
    		}
    		// 1-3 使用foreach遍历
    		for (String value : list) {
    		System.out.println(value);	
    		}
    	}
    
    }
  • 相关阅读:
    华为"128为大整数相加"机试题
    ORA-12545: 因目标主机或对象不存在, 连接失败
    VS2010 安装使用STLPort
    Debian 入门安装与配置1
    CF1072A Palindromic Twist 思维
    解决让刷新页面时不提示 "重试或取消”对话框
    php优化及高效提速问题小结
    让Tomcat支持php
    Php邮件发送源码
    使用iconv提示未知错误
  • 原文地址:https://www.cnblogs.com/cao-yin/p/11795125.html
Copyright © 2011-2022 走看看