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);
}
} }

ListSetAndMap的更多相关文章

随机推荐

  1. flask上下文管理相关-LocalStack 对象维护栈

    LocalStack 对象维护栈 模拟 import threading """ storage = { 1232: {stack:[123,456]} } " ...

  2. webdriver(处理select下拉框元素)

    """处理下拉框""" from selenium import webdriver from selenium.webdriver.com ...

  3. 【ARM-Linux开发】Linux链接

    链接有两种方式:硬链接和软链接. (一)软链接 软链接又叫做符号链接.基本命令为: [plain] view plain copy ln -s sourcePlace newPlace 软链接可以链接 ...

  4. Spring 工程分层

  5. ActiveMQ单机部署及简单应用

    系统版本:Centos 7 前言 MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka.ActiveMQ是Apache下的开源项目, ...

  6. 前端手势控制图片插件书写三(将transform变化应用在图片和canvas画布上)

    注意:transform的scale为负数时,图片会垂直翻转 一.在使用transform将计算得到的变化应用到图片上后,需要考虑到我们每次计算的都是touchmove中本次的差量.在第一次移动过后. ...

  7. JavaSE基础(十二)--Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  8. AndroidStudio布局编辑器强制刷新布局界面

    用AndroidStudio布局编辑器编辑界面的时候,在selector里调整按钮的颜色,调整后的颜色经常无法实时显示在布局编辑器里,每次都重新运行程序查看界面又非常麻烦和低效,可以用以下方法解决: ...

  9. session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

    答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个sessio ...

  10. 适合新手的160个creakme(四)

    这题没有什么特殊字符串,Delphi写的,使用DeDeDark分析一下,找到几个特殊的事件 一个是KeyUp 一个是chkcode 还有就是中间区域的单击或是双击事件 直接跟进去这几个函数,然后找比较 ...