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. 处理HTTP请求

    处理HTTP请求 当客户端浏览器通过URL访问web应用时,首先要做的就是获取用户提交的信息,也就是从HTTP请求数据中获得的信息.HTTP请求数据分为HTTP请求头和Body HTTP请求头包含了一 ...

  2. [转]德哥的PostgreSQL私房菜 - 史上最屌PG资料合集

    链接地址:https://yq.aliyun.com/articles/59251

  3. Linux操作系统使用RPMBUILD命令打包RPM的详细步骤

    首先,我们需要了解一些预备知识,在旧版本的CentOS中,rpmbuild工具默认的工作路径是/usr/src/redhat,因为权限原因,一般用户身份不能制作rpm软件包,只能切换到root身份才能 ...

  4. python进阶--多线程多进程

    一.线程和进程 进程是拥有独立内存,能够独立运行的最小单位,也是程序执行的最小单位,线程是程序运行过程中,一个单一的顺序控制流程,是程序执行流的最小单位,一个进程至少包含一个线程,多线程共享进程的内存 ...

  5. Spark + sbt + IDEA + HelloWorld + MacOS

    构建项目步骤 首先要安装好scala.sbt.spark,并且要知道对应的版本 sbt版本可以在sbt命令行中使用sbtVersion查看 spark-shell可以知晓机器上spark以及对应的sc ...

  6. ulimt 和 sysctl

    ulimit : 对进程进行 资源限制 ,如打开文件数,进程数. sysctl: 更改内核参数. /proc/pid : 伪文件系统,以文件系统的方式 对 访问内核参数 提供接口. 1. ulimit ...

  7. java SerialPort串口通讯的使用

    api文档 http://fazecast.github.io/jSerialComm/javadoc/com/fazecast/jSerialComm/package-summary.html ma ...

  8. js穿梭框;将两个table中的数据选中移动

    将table中选中的数据移动到右边: 点击一行中的任意一个位置,使其选中: 注:attr()和prop()都是jquery的方法: .attr() : 获取匹配的元素集合中的第一个元素的属性的值 或 ...

  9. 关于Android的资源id

    1 @+id/xx 这个表示向资源文件中添加一个新的id. @+id是在R文件中生成int xxx=value. 有两种情况 ①R文件中不存在xxx变量,则生成int xxx=value即为控件新建一 ...

  10. SQL中的关键词

    AS的用法及妙用 https://www.cnblogs.com/zhaotiancheng/p/6692553.html