迭代器遍历【List、Set、Map】
迭代器遍历【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】的更多相关文章
- java 迭代器遍历List Set Map
Iterator接口: 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现Iterator接口的对象 Iterator对象称作为迭代器,用以方便的对容器内元素的遍历 ...
- 有关map中使用iterate迭代器遍历的不保序问题和list remove(object)的细节问题
今天在做项目的过程中发现了如下两个问题: 一 使用map的iterator迭代器对map进行遍历得到的结果是不保序的,也就是每次输出结果都是不一样的.针对这个问题,看以下iterator迭代器的源码. ...
- json遍历,List<Map<String,Object>>遍历
js怎样给input对象追加属性,如disabled $(":textbox").attr({"disabled":true}); List<Map< ...
- 【Java】遍历List/Set/Map集合的一些常用方法
/* * 遍历List/Set/Map集合的一些常用方法 */import java.util.ArrayList;import java.util.HashMap;import java.util. ...
- Play Framework常用标签list,set,如何遍历list、map类型数据
最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的.今天分享下play中强大的标签,遍历list,map类型的数据的用法. 遍历单纯的list数据,例如:List< ...
- Java List中迭代器遍历
在java中,List接口从Collection接口中继承了 iterator()函数,返回值是一个T类型的迭代器(泛型),T是List中元素的类型 public class TestListAndI ...
- Redis Scan迭代器遍历操作原理(一)
Redis在2.8.0版本新增了众望所归的scan操作,从此再也不用担心敲入了keys*, 然后举起双手看着键盘等待漫长的系统卡死了··· 命令的官方介绍在这里, 中文版由huangz同学细心翻译了, ...
- Redis Scan迭代器遍历操作原理(二)
续上一篇文章 Redis Scan迭代器遍历操作原理(一)–基础 ,这里着重讲一下dictScan函数的原理,其实也就是redis SCAN操作最有价值(也是最难懂的部分). 关于这个算法的源头,来自 ...
- Java 中List 集合索引遍历与迭代器遍历
package yzhou.iterator; import java.util.ArrayList; import java.util.HashSet; import java.util.Itera ...
随机推荐
- java.lang.RuntimeException: org.dom4j.DocumentException: 1 字节的 UTF-8 序列的字节 1 无效。
向一个XML文件写入出现异常 解决办法:使用记事本打开该XML文件,另存为,编码选择UTF-8 java.lang.RuntimeException: org.dom4j.DocumentExcept ...
- SQL中group by后面的having中不能使用别名
如下图中,SQL中需要对group by的结果使用having进行过滤,不能使用select中定义的别名,需要使用查询字段的原始名.否则会报错,列明未定义. 下图未错误演示: 修改后,正确的SQL语句 ...
- flask(1.0)
目录 一. 关于KeyError和IndexError 二. Python三大主流框架对比 三. flask基础 1.安装flask 2.用flask写出的第一个页面 3.Flask的Response ...
- Golang的goroutine协程和channel通道
一:简介 因为并发程序要考虑很多的细节,以保证对共享变量的正确访问,使得并发编程在很多情况下变得很复杂.但是Go语言在开发并发时,是比较简洁的.它通过channel来传递数据.数据竞争这个问题在gol ...
- appium+python+Windows自动化测试文档
appium+python自动化测试文档 一.认识appium 1. 什么是appium appium是开源的移动端自动化测试框架: appium可以测试原生的.混合的.以及移动端的web项目: ...
- Eslint常用命令
Eslint常用命令 自动修复(针对整个项目) npm run lint -- --fix 运行如上命令,eslint 会自动修复一些简单的错误. 全局安装 npm install -g eslint ...
- mysql对字段的操作
增: alter table 表名 add 字段名+数据类型, add 字段名+数据类型; alter table 表名 add primary key 字段: "添加主键" 删: ...
- css 左右固定宽度,中间自适应的三列布局
float——浮动布局: 使用浮动,先渲染左右两个元素,分别让他们左右浮动,然后再渲染中间元素,设置它的margin左右边距分别为左右两个元素的宽度. <!DOCTYPE html> &l ...
- day22 subprocess、configeparser、表格操作模块
今日内容: 1.configparser模块的使用 2.subprocess模块的使用 3.表格处理模块 xlrd模块 xlwt模块 1.configparser模块 configparser模块是用 ...
- Origin
1.简单的使用 http://wenku.baidu.com/link?url=K1ThI9a-Ws_Rk28K28kBEc9uNRN7k4vHV4pxfieMCaLeA4rGotRAnk8fxCUm ...