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);
}
} }
ListSetAndMap的更多相关文章
随机推荐
- Spring Aop(十二)——编程式的创建Aop代理之AspectjProxyFactory
转发地址:https://www.iteye.com/blog/elim-2397922 编程式的创建Aop代理之AspectjProxyFactory 之前已经介绍了一款编程式的创建Aop代理的工厂 ...
- 如何用最快的速度读出大小为10G的文件的行数?弄懂 python 的迭代器
with open('rm_keys.txt', 'r', encoding = 'utf-8') as f: count = 0 for line in f: 7 count += 1 print( ...
- Github搭建个人博客的总结
1. 参考 这个 博客 : https://blog.csdn.net/xudailong_blog/article/details/78762262 2. 把上面按照的就安装,并把git 仓库克隆 ...
- shell学习笔记3-后台执行命令
cron 系统调度进程,使用它在每天的某时间或一周.一月的不同时间运行 at 使用它在一个特点的时间允许一些特殊的作业 & 使用它在后台允许一个占用时间不长的进程 Nohup 使用它在后台运行 ...
- fastjson带泛型反序列化的用法
这个问题之前就遇到了,虽然猜到有现成解决办法,但是一直没有正面解决,今天找到了解决方案,mark一下. 主要就是一个TypeReference的使用. 直接上代码比较容易看懂. 1.泛型 public ...
- OpenCV.20190628
1.OpenCV提取ORB特征并匹配 - 简书.html(https://www.jianshu.com/p/420f8211d1cb) OpenCV提取ORB特征并匹配 - 简书.html(http ...
- 你必须知道的495个c语言问题(笔记)
1.1我该如何决定使用哪种整数类型? 用到较大的数用long:空间很重要(例如有很大的数组或很多的结构)用short:此外用int. win32: int 32bit 4byte char 8b ...
- 基于mxgraph.js开发的流程图组件
1.fabric.js 在决定使用mxgraph.js开发流程图之前,尝试过用fabric.js来开发,结果发现并没有想象中的那么简单,而且用户体验非常差,下面是体验地址:workFlow直到遇到一个 ...
- 跨域跨域跨域,从此say goodbye
跨域这个问题每个开发者都会遇到,只是时间先后而已,你不搞清楚它他就像狗皮膏药一样粘着你,在你求职生涯中不停的遇到,然后你每次都要做这个功课,终于有一天这个名词已经让我忍无可忍了,下定决心必须搞定它,要 ...
- SQL Server数据库语法(一)
--创建数据库 DB_CYITcreate database DB_CYITON(name='DB_CYIT',--主文件逻辑名称filename='G:\data\DB_CYIT.mdf', --文 ...