目录
2.3 使用 Arrays.asList 和 forEach 循环(仅适用于对象数组)
3.1.2 使用增强型 for 循环 (forEach 循环)
注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转
前言
在 Java 的学习过程和项目开发过程中,我们需要对 “字符串”、“数组”、“集合类(List、Set、Map)”等对象中的元素 “访问”、“筛选”、“处理” 等操作,不同的遍历方式使用于不同的场景和需求;接下来,我对 “字符串”、“数组”、“集合(List、Set、Map)”的常见遍历方法进行了归纳;
↓↓↓ 各位看官,请阅读下问 ↓ ↓↓
字符串篇
1.1 使用 for 循环和 charAt 方法
String str = "Hello,World!";
for(int i = 0; i < str.length();i++){
char c =str.charAt(i);
System.out.print(c + "\t");
}
1.2 使用增强 for 循环(forEach 循环)
String str ="Hello,World!";
for(char c : str.toCharArray()){
System.out.print(c + "\t");
}
1.3 使用 Java 8 的 Stream API
将字符串转换为字符流,然后使用 forEach 方法进行处理
String str = "Hello, World!";
str.chars().mapToObj(c -> (char) c).forEach(ch -> {
System.out.print(ch + "\t");
});
最终效果
H e l l o , W o r l d !
数组篇
2.1 使用普通 for 循环
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
int element = arr[i];
System.out.print(element +"\t");
}
2.2 使用增强型 for 循环( forEach 循环)
int[] arr = {1, 2, 3, 4, 5};
for (int element : arr) {
System.out.print(element + "\t");
}
2.3 使用 Arrays.asList 和 forEach 循环(仅适用于对象数组)
Integer [] arr = {1, 2, 3, 4, 5};
for (Integer element : Arrays.asList(arr)) {
System.out.print(element + "\t");
}
2.4 使用 Java 8 的Stream API
int[] arr = {1, 2, 3, 4, 5};
Arrays.stream(arr).forEach(element -> {
System.out.print(element + "\t");
});
最终效果
1 2 3 4 5
集合篇
3.1 List、Set集合
3.1.1 使用普通 for 循环(Set 集合除外)
List<String> list = new ArrayList<>();
//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));
//开始遍历
for (int i = 0; i < list.size(); i++) {
String element = list.get(i);
System.out.print(element + "\t");
}
3.1.2 使用增强型 for 循环 (forEach 循环)
List<String> list = new ArrayList<>();
//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));
//开始遍历
for (String element : list) {
System.out.print(element + "\t");
}
3.1.3 使用迭代器(Iterator)
List<String> list = new ArrayList<>();
//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));
//开始遍历
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
String element = iterator.next();
System.out.print(element + "\t");
}
3.1.4 使用 Java 8 的 Stream API
List<String> list = new ArrayList<>();
//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));
//开始遍历
list.stream().forEach(element -> {
System.out.print(element + "\t");
});
3.1.5 使用Lambda表达式和方法引用
List<String> list = new ArrayList<>();
//向集合中添加元素
String[] arr ={"1","3","5","7","9"};
list.addAll(Arrays.asList(arr));
//开始遍历
list.forEach(System.out::print);
最终效果
1 3 5 7 9
3.2 Map集合
3.2.1 遍历 “键” 集合
Map<String, Integer> map = new HashMap<>();
// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.print(value +"\t");
}
效果
1 2 5 3 4
3.2.2 遍历 “键值对”(Entry)
Map<String, Integer> map = new HashMap<>();
// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.print(key +":" + value +"\t");
}
3.2.3 使用迭代器(Iterator)
Map<String, Integer> map = new HashMap<>();
// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);
Iterator<String> keyIterator = map.keySet().iterator();
while (keyIterator.hasNext()) {
String key = keyIterator.next();
Integer value = map.get(key);
System.out.print(key +":" + value +"\t");
}
3.2.4 使用 Java 8 的 Steam API
Map<String, Integer> map = new HashMap<>();
// 添加元素到map中
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
map.put("key4", 4);
map.put("key5", 5);
map.keySet().stream().forEach(key -> {
Integer value = map.get(key);
System.out.print(key +":" + value +"\t");
});
效果
key1:1 key2:2 key5:5 key3:3 key4:4