一、集合类数据结构的遍历方式
1、数组遍历
数组是一种最基本的数据结构,Java中提供了多种方式来遍历数组,例如:
int[] arr = new int[]{1, 2, 3, 4}; for(int i=0; i还可以利用for-each语句来遍历数组:
int[] arr = new int[]{1, 2, 3, 4}; for(int num : arr){ System.out.println(num); }2、List遍历
List是Java提供的一个非常常用的数据结构,可以使用多种方式遍历:
Listlist = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); for(int i=0; i 或者使用for-each语句遍历:
Listlist = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); for(String str : list){ System.out.println(str); } 3、Set遍历
Set是Java提供的另一种非常常用的数据结构,使用方式和List类似:
Setset = 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:
Mapmap = 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,然后遍历:
Mapmap = 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; Listchildren; 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提供了一种更加便捷的遍历方式,可以对集合类数据结构进行流式操作,例如:
Listlist = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.stream().forEach(System.out::println); 以上代码使用stream()方法来获取Stream对象,然后调用forEach()方法来遍历。除此之外,Stream还有其他许多更加强大的操作,例如map()、filter()、reduce()等,可以对集合进行多种处理。