一、集合類數據結構的遍歷方式
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/zh-tw/n/142755.html