Java 中 Set、List 和 Map 的遍历
java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。
package tup.lucene.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.Set;
import java.util.Map.Entry; public class SetListAndMap { /**
* 遍历Set集合的方法:
* 1.使用Iterator迭代器
* 2.使用foreach遍历
* 3.将Set集合转换为List再遍历
*/
private static void setTest() {
Set<String> set = new HashSet<String>();
set.add("Java");
set.add("C");
set.add("C++");
set.add("JavaScript");
set.add("Python");
// 重复的元素加不进去
set.add("Java"); //Set集合遍历方法1:使用iterator
System.out.println("**************Set集合遍历方法1:使用iterator***************");
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String value = it.next();
System.out.println(value);
} //Set集合遍历方法2:使用增强for循环
System.out.println("**************Set集合遍历方法2:使用增强for循环***************");
for(String s: set){
System.out.println(s);
} //Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可
System.out.println("**************Set集合遍历方法3:将set集合转为list集合,然后再遍历List集合即可***************");
List<String> setList = new ArrayList<String>(set);//set转list
// 遍历方法 , 使用传统for循环进行遍历。
for (int i = 0, size = setList.size(); i < size; i++) {
String value = setList.get(i);
System.out.println(value);
}
} /**
* 遍历List集合的方法:
* 1.使用Iterator迭代器
* 2.使用for循环遍历
* 3.使用foreach遍历
*/
private static void listTest() {
List<String> list = new ArrayList<String>();
list.add("111");
list.add("222");
list.add("333");
list.add("444");
list.add("555"); // List遍历方式1:使用iterator
System.out.println("**************List遍历方式1:使用iterator***************");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String value = it.next();
System.out.println(value);
} // List遍历方法2:使用传统for循环进行遍历
System.out.println("**************List遍历方法2: 使用传统for循环进行遍历***************");
for (int i = 0; i < list.size(); i++) {
String value = list.get(i);
System.out.println(value);
} // List遍历方法3: 使用增强for循环进行遍历
System.out.println("**************List遍历方法3: 使用增强for循环(foreach)进行遍历***************");
for (String value : list) {
System.out.println(value);
}
} /**
* 遍历map集合的方法:
* 1.使用keySet()获得key的set集合,然后使用Iterator迭代器或foreach遍历set即可,但是只能直接取出key,再通过key取出value,两种方法
* 2.使用entrySet()获得key-value的set集合,然后使用Iterator迭代器或foreach遍历set即可,可同时取出key和value,两种方法
*/
private static void mapTest() {
// 创建一个HashMap对象,并加入了一些键值对。
Map<String, String> maps = new HashMap<String, String>();
maps.put("111", "java111");
maps.put("222", "java222");
maps.put("333", "java333");
maps.put("444", "java444");
maps.put("555", "java555"); // Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合
System.out.println("**************Map遍历方法1-1: 使用keySet得到key的Set集合,再使用foreach遍历Set集合***************");
Set<String> set = maps.keySet();
for (String s : set) {
String key = s;
String value = maps.get(s);
System.out.println(key + " : " + value);
} // Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历
System.out.println("**************Map遍历方法1-2: 使用keySet得到key的Set集合,再使用Iterator迭代器遍历***************");
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
String value = maps.get(key);
System.out.println(key + " : " + value);
} // Map遍历方法2-1: 使用entrySet()获得key-value的Set集合,然后使用foreach遍历Set即可
System.out.println("**************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迭代器遍历
System.out.println("**************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);
}
} public static void main(String[] args) {
// Set集合的遍历
setTest(); // List集合的遍历
listTest(); // Map集合的遍历
mapTest();
} }
Java 中 Set、List 和 Map 的遍历的更多相关文章
- Java中关于HashMap的使用和遍历(转)
Java中关于HashMap的使用和遍历 分类: 算法与数据结构2011-10-19 10:53 5345人阅读 评论(0) 收藏 举报 hashmapjavastringobjectiterator ...
- JAVA 中的 Collection 和 Map 以及相关派生类的概念
JAVA中Collection接口和Map接口的主要实现类 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...
- Java中的Set,List,Map的区别
1. 对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 ja ...
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- Java 中 List 向前和向后遍历
Java 中 List 向前和向后遍历 import java.util.*; public class TestCollectionIterator { public static void mai ...
- Java中集合List,Map和Set的差别
Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...
- Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)
一.学习ArrayList与Map时,关于常用遍历方法的记录如下: 二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...
- JAVA中Collection接口和Map接口的主要实现类
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...
- Java中的Set, List, Map漫谈
在编程语言中,集合是指代表一组对象的对象.Java平台专门有一个集合框架(Collections Framework).集合框架是指表示和操作集合的统一架构,隔离了集合的操作和实现细节. 集合框架中的 ...
- Java中的集合框架-Map
前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...
随机推荐
- unsqueeze 和 squeeze
squeeze压缩的意思 就是在第几维为1 去掉 unsqueeze 解缩 在第几维增加 变成*1 squeeze用法 c = b.view(1, 1, 1, 2, 3) c.squeeze(0) # ...
- pip升级命令
pip升级命令 $ python -m pip install --upgrade pip
- 携程PMO--如何召开卓有成效的回顾会
话题介绍 回顾会提供团队反思迭代过程并提出改进措施的机会.回顾会是团队成员共同进行的协作活动,让团队成员跟进并落实改进措施,使团队在下一个冲刺中更高效,这是相当重要的. 我们给出了回顾会的 ...
- jmeter+WebDriver:启动浏览器进行web自动化
无论是web自动化还是手机app自动化,WebDriver是Selenium的核心模块,jmeter WebDriver 仅支持Firefox.Chrome 和 HTML Unit驱动,暂不支持IE ...
- unity编辑器扩展_01(在工具栏中创建一个按钮)
代码: [MenuItem("Tools/Test",false,1)] static void Test() { Debug.Log("tes ...
- vue 自动化路由实现
1.需求描述 在写vue的项目中,一般情况下我们每添加一个新页面都得添加一个新路由.为此我们在项目中会专门的一个文件夹来管理路由,如下图所示 那么有没有一种方案,能够实现我们在文件夹中新建了一个vue ...
- Android定时锁屏功能实现(AlarmManager定时部分)
菜鸟入坑记——第一篇 关键字:AlarmManager 一.AlarmManager简介: 参考网址:https://www.jianshu.com/p/8a2ce9d02640 参考网 ...
- P2467 [SDOI2010]地精部落 DP
传送门:https://www.luogu.org/problemnew/show/P2467 参考与学习:https://www.luogu.org/blog/user55639/solution- ...
- poj 1127 -- Jack Straws(计算几何判断两线段相交 + 并查集)
Jack Straws In the game of Jack Straws, a number of plastic or wooden "straws" are dumped ...
- android日志搜集原理及方案比较
说明: 本文只讨论Log日志,而不是应用的埋点日志. Android 日志架构 用一张图来了解Android Log的架构: 这里涉及到三个进程: APP进程: 调用Log的接口打日志,最终通过soc ...