Java 集合遍历
在集合中使用Lambda表达式
Map集合中
forEach and Map
常规遍历-> 两种遍历:
Map map = new HashMap();
map.put(102, "张三");
map.put(105, "李四");
map.put(109, "王五");
map.put(110, "董六");
map.put(111, "李四"); // 1.使用for-each循环遍历
System.out.println("--1.使用for-each循环遍历--");
// 获得键集合
Set keys = map.keySet();
for (Object key : keys) {
int ikey = (Integer) key; // 自动拆箱
String value = (String) map.get(ikey); // 自动装箱
System.out.printf("key=%d - value=%s \n", ikey, value);
} // 2.使用迭代器遍历
System.out.println("--2.使用迭代器遍历--");
// 获得值集合
Collection values = map.values();
// 遍历值集合
Iterator it = values.iterator();
while (it.hasNext()) {
Object item = it.next();
String s = (String) item;
System.out.println("值集合元素: " + s);
} 常规遍历对比Lambda遍历
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60); for (Map.Entry<String, Integer> entry : items.entrySet()) {
System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
} Lambda遍历
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60); items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v)); items.forEach((k,v)->{
System.out.println("Item : " + k + " Count : " + v);
if("E".equals(k)){
System.out.println("Hello E");
}
}); List集合中
forEach and List
常规遍历-> 三种遍历:
List list = new ArrayList();
String b = "B";
// 向集合中添加元素
list.add("A");
list.add(b);
list.add("C");
list.add(b);
list.add("D");
list.add("E"); // 1.使用for循环遍历
System.out.println("--1.使用for循环遍历--");
for (int i = 0; i < list.size(); i++) {
System.out.printf("读取集合元素(%d): %s \n", i, list.get(i));
} // 2.使用for-each循环遍历
System.out.println("--2.使用for-each循环遍历--");
for (Object item : list) {
String s = (String) item;
System.out.println("读取集合元素: " + s);
} // 3.使用迭代器遍历
System.out.println("--3.使用迭代器遍历--");
Iterator it = list.iterator();
while (it.hasNext()) {
Object item = it.next();
String s = (String) item;
System.out.println("读取集合元素: " + s);
} 常规遍历对比Lambda遍历
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
items.add("D");
items.add("E"); for(String item : items){
System.out.println(item);
} Lambda遍历
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
items.add("D");
items.add("E"); //lambda
//Output : A,B,C,D,E
items.forEach(item->System.out.println(item)); //Output : C
items.forEach(item->{
if("C".equals(item)){
System.out.println(item);
}
}); //method reference
//Output : A,B,C,D,E
items.forEach(System.out::println); //Stream and filter
//Output : B
items.stream()
.filter(s->s.contains("B"))
.forEach(System.out::println); Set集合中
forEach and Set
常规遍历-> 两种遍历:
Set set = new HashSet();
String b = "B";
// 向集合中添加元素
set.add("A");
set.add(b);
set.add("C");
set.add(b);
set.add("D");
set.add("E"); // 1.使用for-each循环遍历
System.out.println("--1.使用for-each循环遍历--");
for (Object item : set) {
String s = (String) item;
System.out.println("读取集合元素: " + s);
} // 2.使用迭代器遍历
System.out.println("--2.使用迭代器遍历--");
Iterator it = set.iterator();
while (it.hasNext()) {
Object item = it.next();
String s = (String) item;
System.out.println("读取集合元素: " + s);
} 常规遍历对比Lambda遍历:
常规遍历
Set<String> sets = new HashSet<>();
sets.add("A");
sets.add("B");
sets.add("C");
sets.add("D");
sets.add("E");
sets.add("EA");
//Output: A,EA
for (String set : sets) {
if (set.contains("A")){
System.out.println(set);
}
} Lambda遍历
Set<String> sets = new HashSet<>();
sets.add("A");
sets.add("B");
sets.add("C");
sets.add("D");
sets.add("E");
sets.add("EA");
//Output: A,B,C,D,E,EA
sets.forEach(set -> System.out.println(set));
//Output: A,B,C,D,E,EA
sets.forEach(System.out::println);
//Output: A,EA
sets.stream()
.filter(s -> s.contains("A"))
.forEach(System.out::println);
//Output: Hello:C
sets.forEach(set -> {
if ("C".equals(set)) {
System.out.println("Hello:" + set);
}
});
Java 集合遍历的更多相关文章
- Java集合——遍历集合元素并修改
Java集合——遍历集合元素并修改 摘要:本文主要总结了遍历集合的方式,以及在遍历时修改集合要注意的问题. 遍历Collection 对List和Set的遍历,有四种方式,下面以ArrayList为例 ...
- java集合-遍历arraylist-for循环-从指定下标开始遍历-for的用法
转载:http://www.9191boke.com/blogdetails/681220549.html java集合的for循环遍历有多种方式,但是都是从下标0开始遍历,有时会有从中间下标开始遍历 ...
- java 集合遍历输出方式
Iterator:迭代输出 一旦操作集合的遍历输出,首选Iterator接口; ListIterator:Iterator子接口,专门输出List中的元素; Enumeration:古老的输出方式,迭 ...
- java集合遍历删除指定元素异常分析总结
在使用集合的过程中,我们经常会有遍历集合元素,删除指定的元素的需求,而对于这种需求我们往往使用会犯些小错误,导致程序抛异常或者与预期结果不对,本人很早之前就遇到过这个坑,当时没注意总结,结果前段时间又 ...
- java集合遍历的几种方式总结及比较
集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); } ...
- Java集合遍历时删除
public static void main(String[] args){ List<Integer> list = new ArrayList<Integer>(); l ...
- 对JAVA集合进行遍历删除时务必要用迭代器
java集合遍历删除的方法: 1.当然这种情况也是容易解决,实现方式就是讲遍历与移除操作分离,即在遍历的过程中,将需要移除的数据存放在另外一个集合当中,遍历结束之后,统一移除. 2.使用Iterato ...
- JAVA集合迭代遍历和特性介绍
数组.集合:都是一种容器,用一个对象管理多个对象:数组不能自动增长:只能存放同类型的元素 集合能自动扩容:部分集合允许存放不同类型的元素: 1.List: 有顺序的,允许存放重复的元素: 遍历:for ...
- Java集合的Stack、Queue、Map的遍历
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...
随机推荐
- bzoj1969 [Ahoi2005]LANE 航线规划 树链剖分
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1969 题解 如果我们把整个图边双联通地缩点,那么最终会形成一棵树的样子. 那么在这棵树上,\( ...
- Ubuntu Server下MySql数据库备份脚本代码
明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...
- [luogu]P1041 传染病控制[dfs]
[luogu]P1041 传染病控制 ——!x^n+y^n=z^n 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的 ...
- Jesus Is Here
Jesus Is Here Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)To ...
- 从React渲染流程分析Diff算法
1.什么是虚拟DOM 在React中,render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM. 简单的说,其实所谓的virtu ...
- Java 封装 继承 多态
Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法 ...
- codeforces 617 E. XOR and Favorite Number(莫队算法)
题目链接:http://codeforces.com/problemset/problem/617/E 题目: 给你a1 a2 a3 ··· an 个数,m次询问:在[L, R] 里面又多少中 [l, ...
- 最长上升子序列(LIS)动态规划
最长上升子序列 给你n个整数 A1 A2 ········· An 找出在这个数组里面的最长上升的子序列.例如给你(1,7,3,5,9,4,8),他的上升子序列有(1,7) (3,4,8)等等之类的, ...
- WebGIS常用代码集锦
一.普通代码 1.坐标转换 ol.proj.transform(coordinate, source, destination) ol.proj.transform(coordinate, 'EPSG ...
- 连接超时(connect timed out)和读取超时(Read timed out)
设置连接超时和读取超时方法: RequestConfig config=RequestConfig.custom() .setConnectTimeout(10000) // 设置连接超时时间 10秒 ...