一、集合类数据结构的遍历方式
1、数组遍历
数组是一种最基本的数据结构,Java中提供了多种方式来遍历数组,例如:
int[] arr = new int[]{1, 2, 3, 4};
for(int i=0; i<arr.length; i++){
System.out.println(arr[i]);
}
还可以利用for-each语句来遍历数组:
int[] arr = new int[]{1, 2, 3, 4};
for(int num : arr){
System.out.println(num);
}
2、List遍历
List是Java提供的一个非常常用的数据结构,可以使用多种方式遍历:
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
或者使用for-each语句遍历:
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
for(String str : list){
System.out.println(str);
}
3、Set遍历
Set是Java提供的另一种非常常用的数据结构,使用方式和List类似:
Set set = new HashSet();
set.add("a");
set.add("b");
set.add("c");
for(String str : set){
System.out.println(str);
}
二、Map数据结构的遍历方式
1、Map.Entry遍历方式
Map是Java提供的一个键值对结构的数据结构,遍历方式也有多种,其中一种方式是使用Map.Entry:
Map map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
for(Map.Entry entry : map.entrySet()){
System.out.println(entry.getKey() + " : " + entry.getValue());
}
2、keySet遍历方式
还可以使用keySet来获取Map的key,然后遍历:
Map map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
for(String key : map.keySet()){
System.out.println(key + " : " + map.get(key));
}
三、递归遍历树形数据结构
1、以二叉树为例
二叉树是树形数据结构中最为常用的一种,递归遍历方式也非常常用,例如:
class TreeNode {
int value;
TreeNode left;
TreeNode right;
public TreeNode(int value){
this.value = value;
}
}
public void preOrder(TreeNode node) {
if(node != null) {
System.out.print(node.value + " ");
preOrder(node.left);
preOrder(node.right);
}
}
以上是二叉树的前序遍历方式,在递归中依次输出当前节点的值,并递归左子节点和右子节点。
2、多叉树的遍历方式
对于多叉树,也同样可以使用递归方式对其进行遍历,例如:
class MultiTreeNode {
int value;
List children;
public MultiTreeNode(int value){
this.value = value;
children = new ArrayList();
}
}
public void preOrder(MultiTreeNode node) {
if(node != null) {
System.out.print(node.value + " ");
for(MultiTreeNode child : node.children){
preOrder(child);
}
}
}
四、StreamAPI的遍历方式
Java 8引入的StreamAPI提供了一种更加便捷的遍历方式,可以对集合类数据结构进行流式操作,例如:
List list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.stream().forEach(System.out::println);
以上代码使用stream()方法来获取Stream对象,然后调用forEach()方法来遍历。除此之外,Stream还有其他许多更加强大的操作,例如map()、filter()、reduce()等,可以对集合进行多种处理。
原创文章,作者:GRBY,如若转载,请注明出处:https://www.506064.com/n/142755.html
微信扫一扫
支付宝扫一扫