一、集合類數據結構的遍歷方式
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-hant/n/142755.html
微信掃一掃
支付寶掃一掃