迭代器遍历【List、Set、Map】

example

 package boom.collection;

 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; /**
* 迭代器遍历List、Set、Map
* @author Administrator
*
*/
public class IteratorTest { public static void main(String[] args) {
//testList();
//testSet();
testMap();
} private static void testMap() {
Map<Integer, String> map = new HashMap<>();
map.put(001, "小喜庆");
map.put(002, "小云云");
map.put(003, "小胖砸"); // 遍历map第一种
Set<Entry<Integer, String>> ss = map.entrySet();
for (Iterator<Entry<Integer, String>> iterator = ss.iterator(); iterator.hasNext();) {
Entry<Integer, String> entry = (Entry<Integer, String>) iterator.next();
System.out.println(entry.getKey() + "=>" + entry.getValue());
} // 遍历map第二种(通过键去获取对应的键值对)
Set<Integer> keySet = map.keySet();
for (Iterator<Integer> iterator = keySet.iterator(); iterator.hasNext();) {
Integer key = (Integer) iterator.next();
System.out.println(key + "=>" + map.get(key));
} } private static void testSet() {
Set<String> set = new HashSet<>();
set.add("谷歌");
set.add("百度");
set.add("搜狗"); // 遍历
for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {
String string = iterator.next();
System.out.println(string);
}
} private static void testList() {
List<String> list = new ArrayList<>();
list.add("Google");
list.add("Baidu");
list.add("SougGou"); // 迭代器迭代集合
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
} }

遍历List方法一:普通for循环

 for(int i=0;i<list.size();i++){//list为集合的对象名
String temp = (String)list.get(i);
System.out.println(temp);
}

遍历List方法二:增强for循环(使用泛型!)

 for (String temp : list) {
System.out.println(temp);
}

遍历List方法三:使用Iterator迭代器(1)

 for(Iterator iter= list.iterator();iter.hasNext();){
String temp = (String)iter.next();
System.out.println(temp);
}

遍历List方法四:使用Iterator迭代器(2)

 Iterator  iter =list.iterator();
while(iter.hasNext()){
Object obj = iter.next();
iter.remove();//如果要遍历时,删除集合中的元素,建议使用这种方式!
System.out.println(obj);
}

遍历Set方法一:增强for循环

 for(String temp:set){
System.out.println(temp);
}

遍历Set方法二:使用Iterator迭代器

 for(Iterator iter = set.iterator();iter.hasNext();){
String temp = (String)iter.next();
System.out.println(temp);
}

遍历Map方法一:根据key获取value

 Map<Integer, Man> maps = new HashMap<Integer, Man>();
Set<Integer> keySet = maps.keySet();
for(Integer id : keySet){
System.out.println(maps.get(id).name);
}

遍历Map方法二:使用entrySet

 Set<Entry<Integer, Man>>  ss = maps.entrySet();
for (Iterator iterator = ss.iterator(); iterator.hasNext();) {
Entry e = (Entry) iterator.next();
System.out.println(e.getKey()+"--"+e.getValue());

Collections工具类 (collection是接口,collections是工具类)
[java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法]
创建模板进行测试:

 List<String> list = new ArrayList<>();
for (int i = 0; i < 4; i++) {
list.add(i + "小喜庆");
}
System.out.println("正常遍历:" + list);

1. void sort(List) //对List容器内的元素排序,排序的规则是按照升序进行排序。

 // 递增的方式遍历[自定义类使用comparable接口进行排序]
Collections.sort(list);
System.out.println("递增遍历:" + list);

2. void shuffle(List) //对List容器内的元素进行随机排列。

 // 随机排序list中的元素
Collections.shuffle(list);
System.out.println("随机遍历:" + list);

3. void reverse(List) //对List容器内的元素进行逆续排列 。

 // 逆序排序
Collections.reverse(list);
System.out.println("逆序遍历:" + list);

4. int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

 // 二分查找法
System.out.println(Collections.binarySearch(list, "小云云"));// 没有查到返回一个负值 -5
System.out.println(Collections.binarySearch(list, "2小喜庆"));// 查到返回一个对应的下标 2

5.void fill(List, Object) //用一个特定的对象重写整个List容器。

 //特定的对象重写整个List容器。
Collections.fill(list, "Hello");
System.out.println(list);

【1~5】运行图:

迭代器遍历【List、Set、Map】的更多相关文章

  1. java 迭代器遍历List Set Map

    Iterator接口: 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现Iterator接口的对象 Iterator对象称作为迭代器,用以方便的对容器内元素的遍历 ...

  2. 有关map中使用iterate迭代器遍历的不保序问题和list remove(object)的细节问题

    今天在做项目的过程中发现了如下两个问题: 一 使用map的iterator迭代器对map进行遍历得到的结果是不保序的,也就是每次输出结果都是不一样的.针对这个问题,看以下iterator迭代器的源码. ...

  3. json遍历,List<Map<String,Object>>遍历

    js怎样给input对象追加属性,如disabled $(":textbox").attr({"disabled":true}); List<Map< ...

  4. 【Java】遍历List/Set/Map集合的一些常用方法

    /* * 遍历List/Set/Map集合的一些常用方法 */import java.util.ArrayList;import java.util.HashMap;import java.util. ...

  5. Play Framework常用标签list,set,如何遍历list、map类型数据

    最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的.今天分享下play中强大的标签,遍历list,map类型的数据的用法. 遍历单纯的list数据,例如:List< ...

  6. Java List中迭代器遍历

    在java中,List接口从Collection接口中继承了 iterator()函数,返回值是一个T类型的迭代器(泛型),T是List中元素的类型 public class TestListAndI ...

  7. Redis Scan迭代器遍历操作原理(一)

    Redis在2.8.0版本新增了众望所归的scan操作,从此再也不用担心敲入了keys*, 然后举起双手看着键盘等待漫长的系统卡死了··· 命令的官方介绍在这里, 中文版由huangz同学细心翻译了, ...

  8. Redis Scan迭代器遍历操作原理(二)

    续上一篇文章 Redis Scan迭代器遍历操作原理(一)–基础 ,这里着重讲一下dictScan函数的原理,其实也就是redis SCAN操作最有价值(也是最难懂的部分). 关于这个算法的源头,来自 ...

  9. Java 中List 集合索引遍历与迭代器遍历

    package yzhou.iterator; import java.util.ArrayList; import java.util.HashSet; import java.util.Itera ...

随机推荐

  1. Mysql执行查询语句慢的解决方式

    MySQL使用的是InnoDB引擎.不同于MyISAM引擎只提供表锁,InnoDB提供不同级别的锁.但是在我们日常的操作过程中经常由于对数据库不当的SQL操作导致出现长时间的锁,造成其他的SQL语句长 ...

  2. k8s 管理机密信息

    一.启动应用安全信息的保护: Secret介绍: 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...

  3. Server2008实验——私钥和添加数据恢复代理程序

    导出和安装私钥 当一个用户加密一个文件的时候,生成证书,拥有证书的私钥的用户才能够解开这个加密文件:为了防止私钥丢失导致加密文件不可打开,可以导出私钥给同一个用户组的用户帮忙打开: 1.创建[xl]和 ...

  4. svn 创建外部链接

    背景: 之前的服务器项目<杀戮链条>,服务器工程中的common目录需要在多个子工程中共享,为了统一,所以只保留一个common目录,在子工程中采用外部链接的方法共享到工程中 1.  打开 ...

  5. 3-3 man手册介绍

    man手册介绍 内容表示的意义: 各部分功能说明: SECTION: name:命令的名称及功能描述: SYNOPSIS:命令使用格式摘要: DESCRIPTION:详细描述信息: OPTIONS:选 ...

  6. JS&和&&-T

    &&逻辑与 &按位与(转换为二进制运算) console.log(1&2); console.log(1&&2); 上面打印的结果是什么呢? 先复习一下 ...

  7. 【POJ - 1970】The Game(dfs)

    -->The Game 直接中文 Descriptions: 判断五子棋棋局是否有胜者,有的话输出胜者的棋子类型,并且输出五个棋子中最左上的棋子坐标:没有胜者输出0.棋盘是这样的,如图 Samp ...

  8. js单击事件

    <script type="text/javascript"> // 根据ID获取元素,得到按钮[注册] var elbtn=document.getElementBy ...

  9. 论文阅读 | Tackling Adversarial Examples in QA via Answer Sentence Selection

    核心思想 基于阅读理解中QA系统的样本中可能混有对抗样本的情况,在寻找答案时,首先筛选出可能包含答案的句子,再做进一步推断. 方法 Part 1 given: 段落C   query Q 段落切分成句 ...

  10. 动态加载js不执行解决办法

    这个问题的产生原因是:我们项目有一个主index文件,在主index文件中需要根据参数来判断是加载pc.html的内容还是加载mobile.html的内容,一开始是使用jquery来做的,没有问题,后 ...