一、集合类数据结构的遍历方式
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