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 的遍历的更多相关文章

  1. Java中关于HashMap的使用和遍历(转)

    Java中关于HashMap的使用和遍历 分类: 算法与数据结构2011-10-19 10:53 5345人阅读 评论(0) 收藏 举报 hashmapjavastringobjectiterator ...

  2. JAVA 中的 Collection 和 Map 以及相关派生类的概念

    JAVA中Collection接口和Map接口的主要实现类   Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...

  3. Java中的Set,List,Map的区别

    1. 对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 ja ...

  4. Java中集合List,Map和Set的区别

    Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...

  5. Java 中 List 向前和向后遍历

    Java 中 List 向前和向后遍历 import java.util.*; public class TestCollectionIterator { public static void mai ...

  6. Java中集合List,Map和Set的差别

    Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...

  7. Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)

    一.学习ArrayList与Map时,关于常用遍历方法的记录如下:  二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...

  8. JAVA中Collection接口和Map接口的主要实现类

    Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...

  9. Java中的Set, List, Map漫谈

    在编程语言中,集合是指代表一组对象的对象.Java平台专门有一个集合框架(Collections Framework).集合框架是指表示和操作集合的统一架构,隔离了集合的操作和实现细节. 集合框架中的 ...

  10. Java中的集合框架-Map

    前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...

随机推荐

  1. 十分钟入门流处理框架Flink --实时报表场景的应用

    随着业务的发展,数据量剧增,我们一些简单报表大盘类的任务,就不能简单的依赖于RDBMS了,而是依赖于数仓之类的大数据平台. 数仓有着巨量数据的存储能力,但是一般都存在一定数据延迟,所以要想完全依赖数数 ...

  2. 用python写排序算法

    希尔排序 希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能.这样可以让一个元素可以一次性地朝最终位置前进一大步.然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到 ...

  3. 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期

    ​团队开发时,每天都需要输出一个apk包给其它部门的同事测试验证.打包几乎是每天必须完成的功课.如果用IDE来输出apk,那速度是非常慢的,如果还需要有不同渠道的apk包,那程序猿都要疯了.当然也有用 ...

  4. Spring源码剖析7:AOP实现原理详解

    前言 前面写了六篇文章详细地分析了Spring Bean加载流程,这部分完了之后就要进入一个比较困难的部分了,就是AOP的实现原理分析.为了探究AOP实现原理,首先定义几个类,一个Dao接口: pub ...

  5. C笔记_C语言环境、编译、预处理

    1.环境 gcc -v //查看环境变量 gcc 同 g++ gcc main.c -o main.exe gcc main.c //默认生成a.exe 2.编译 预处理:   gcc -E main ...

  6. 前端优化---回流 (reflow)与 重绘(repaint)

    回流(reflow):指的是网络浏览器为了重新渲染部分或全部的文档而重新计算文档中元素的位置和几何结构的过程. 页面上节点是以树的形式展现的,我们通过js将页面上的一个节点删除,此时为了不让剩下的节点 ...

  7. 《Java 8 in Action》Chapter 9:默认方法

    传统上,Java程序的接口是将相关方法按照约定组合到一起的方式.实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现. 但是,一旦类库的设计者需要更新接口,向其中加入新的方法, ...

  8. [Python] 通过采集23万条数据,对《哪吒》影评分析

    一.说明 数据来源:猫眼: 运行环境:Win10/Python3.7 和 Win7/Python3.5: 分析工具:jieba.WorldCloud.pyecharts和matplotlib: 程序基 ...

  9. 【原创】(二)Linux物理内存初始化

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  10. 《高效休息法》IT从业者如何高效休息

    这本书主要讲什么? 大脑疲劳和身体疲劳不同,身体再怎么休息,大脑疲劳还是会在不知不觉中积累 大脑是一个重量仅仅占体重2%,却消耗着20%能量的大胃王,这些能量大部分都用在了预设模式网络(Default ...