Java是一門廣泛使用的編程語言,數據結構和算法是程序設計的基礎。
下面是Java常用的數據結構和算法。
// 數組排序 int[] arr = {5, 2, 8, 1, 9}; Arrays.sort(arr); // 升序排序 // 字符串長度 String str = "Hello"; int len = str.length(); // 字符串比較 String str1 = "hello"; String str2 = "world"; int cmp = str1.compareTo(str2); // 鏈表 class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } ListNode l1 = new ListNode(1); l1.next = new ListNode(2); l1.next.next = new ListNode(3); // 棧 Stackstack = new Stack<>(); stack.push(1); stack.push(2); int top = stack.peek(); // 隊列 Queue queue = new LinkedList<>(); queue.offer(1); queue.offer(2); int front = queue.peek(); queue.poll(); // 二叉樹 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } // 遞歸遍歷二叉樹 void traverse(TreeNode node) { if (node == null) return; traverse(node.left); traverse(node.right); } // 哈希表 Map map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); int val = map.get("apple"); // 排列組合 List >res = new ArrayList<>(); void backtrack(int[] nums, List
track) { if (track.size() == nums.length) { res.add(new ArrayList<>(track)); return; } for (int i = 0; i< nums.length; i++) { if (track.contains(nums[i])) continue; track.add(nums[i]); backtrack(nums, track); track.remove(track.size() - 1); } }
以上是Java中常用的一些數據結構和算法,掌握它們的使用可以大大提升程序的運行效率。