这篇文章让你彻底理解集合的遍历方式,以及实现的方法 !!!
制作不易,觉得不错请点赞收藏哟 !!!
为什么要收藏呢,因为我觉得,编程这东西,如果没经常涉及到这方面的知识,
大概率过几天就会忘记 !!!
目录
[1.1 键找值](#1.1 键找值)
[1.2 键值对](#1.2 键值对)
[1.3 Lambda遍历](#1.3 Lambda遍历)
[3.1 遍历keySet](#3.1 遍历keySet)
[3.1 遍历entrySet](#3.1 遍历entrySet)
[4.1 迭代器遍历](#4.1 迭代器遍历)
[4.2 增强For循环遍历](#4.2 增强For循环遍历)
[4.3 普通for循环遍历](#4.3 普通for循环遍历)
[5.1 增强For循环](#5.1 增强For循环)
[5.2 迭代器遍历](#5.2 迭代器遍历)
1.Map增强For循环的三种遍历方式
1.1 键找值
通过keySet()获取集合中所有的键,然后遍历Set<String> keys = maps.keySet(),
再通过get(key) 获取对应的值
java
@Test
public void testMap01() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
//第一种
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key + "--" + map.get(key));
}
}
1.2 键值对
先通过entrySet方法把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型了(将键和值看成一个整体)。
遍历获取到的Set集合,然后通过getKey提取键, 以及getValue提取值。
java
@Test
public void testMap02() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
//第二种
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
System.out.println(entry.getKey() + "--" + entry.getValue());
}
}
1.3 Lambda遍历
java
@Test
public void testMap03() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
//第三种
map.forEach(new BiConsumer<String, Integer>() {
@Override
public void accept(String s, Integer integer) {
System.out.println(s + "--" + integer);
}
});
}
下面是更简单的方式
java
@Test
public void testMap03() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
//第三种
maps.forEach((key, value) -> System.out.println(key + "--->" + value));
}
2.Map迭代器Iterator的三种遍历方式
因为都是跟上面一样的所以就直接给代码
java
@Test
public void testMap04() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()){
String key = iterator.next();
System.out.println(key + "--" + map.get(key));
}
}
java
@Test
public void testMap05() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, Integer> next = iterator.next();
System.out.println(next.getKey() + "--" + next.getValue());
}
}
3.Stream流遍历
3.1 遍历keySet
java
@Test
public void testMap12() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
// 使用stream()方法将Map转换为流,然后进行遍历操作
map.keySet().stream()
.forEach(keySet -> System.out.println(keySet + "--" + map.get(keySet)));
}
3.1 遍历entrySet
java
@Test
public void testMap13() {
Map<String, Integer> map = new HashMap<>();
map.put("小米手机", 1000);
map.put("苹果手机", 3000);
map.put("荣耀手机", 2000);
// 使用stream()方法将Map转换为流,然后进行遍历操作
map.entrySet().stream()
.forEach(entry -> System.out.println(entry.getKey() + "--" + entry.getValue()));
}
4.List集合的三种遍历方式
4.1 迭代器遍历
java
@Test
public void testMap07() {
List<String> list = new ArrayList<>();
list.add("小米手机");
list.add("荣耀手机");
list.add("苹果手机");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String value = iterator.next();
System.out.println(value);
}
}
4.2 增强For循环遍历
java
@Test
public void testMap08() {
List<String> list = new ArrayList<>();
list.add("小米手机");
list.add("荣耀手机");
list.add("苹果手机");
for (String s : list) {
System.out.println(s);
}
}
4.3 普通for循环遍历
java
@Test
public void testMap09() {
List<String> list = new ArrayList<>();
list.add("小米手机");
list.add("荣耀手机");
list.add("苹果手机");
for (int i = 0;i < list.size();i++){
System.out.println(list.get(i));
}
}
5.Set集合的两种遍历方式
5.1 增强For循环
java
@Test
public void testMap10() {
Set<String> set = new HashSet<>();
set.add("小米手机");
set.add("荣耀手机");
set.add("苹果手机");
for (String s : set) {
System.out.println(s);
}
}
5.2 迭代器遍历
java
@Test
public void testMap11() {
Set<String> set = new HashSet<>();
set.add("小米手机");
set.add("荣耀手机");
set.add("苹果手机");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);
}
}