Java Note 01:常忘 Java 語法
為了麵包不得已開始刷題人生,但被 IDE 寵壞後,默寫時連迴圈都寫不出來了,趕快來複習一下。
for loop
1 | for (int i = 0; i < 5; i++) { |
1 | for (int i : array) { |
String
Java String 类
返回字串長度
int length();
判斷字串值是否相同
boolean equals(String value);
返回指定索引的 char
char charAt(int index);
返回字串轉換成的 char[]
char[] toCharArray();
返回子字串(指定頭尾)
String substring(int beginIndex, int endIndex);
注意:包含頭,不包含尾。
返回子字串(指定頭)
String substring(int beginIndex);
判斷是否包含指定字符序列
boolean contains(CharSequence chars);
Character
確定是否為字母或數字
Character.isLetterOrDigit(char)
Array
建立新 Array 方法
1 | int[] intArray = new int[3]; // 長度為三,空的 Array |
ArrayList
Java ArrayList
Arrays
Arrays 是處理各式 Array 的工具類。
排序傳入的 array
Arrays.sort(array);
比較兩 arrays 值是否相同
Arrays.equals(array1, array2);
生成裝有 values 的 List
Arrays.asList(value1, value2, …);
返回的 List 不適合拿來操作,通常是用來快速建立指定元素的 ArrayList 或 HashSet 之類的類別。
Collections
排序
Collections.sort(list);
Arrays 的 sort 不能排序 ArrayList,所以要用這個。
Collections.reverseOrder()
在建構 PriorityQueue 之類的 class 時可以用此指定反向順序。
HashMap
Java HashMap
需要注意基本類別要換成封裝類別。
獲取指定 key 對應的 value
hashmap.get(key);
獲取指定 key 對應的 value,若找不到 key 就返回 default
hashmap.getOrDefault(key, default);
添加鍵值對
hashmap.put(key, value);
檢查是否存在指定 key 對應的映射關係
hashmap.containsKey(key);
檢查是否存在指定 value 對應的映射關係
hashmap.containsValue(value);
刪除 key 對應的鍵值對
hashmap.remove(key);
返回 hashmap 中所有 key 組成的 set
hashmap.keySet();
返回 hashmap 中所有 value 組成的 set
hashmap.values();
返回 hashmap 中所有 映射關係 的 set
hashmap.entrySet();
換容器時會使用到,每個鍵值對的類型為 Map.Entry
Map.Entry 取得鍵:getKey()
Map.Entry 取得值:getValue()
HashSet
Java HashSet
需要注意基本類別要換成封裝類別。
添加元素
hashset.add(value);
判斷元素是否存在
hashset.contains(value);
刪除元素
hashset.remove(value);
獲取 hashset 大小
hashset.size();
交集技巧
hashset1.retainAll(hashset2);
返回扣掉兩 sets 未交集元素後的 hashset1。
差集技巧
hashset1.removeAll(hashset2);
返回扣掉兩 sets 交集元素後的 hashset1。
聯集技巧
hashset1.addAll(hashset2);
返回加上兩 sets 未交集元素後的 hashset1。
PriorityQueue
Java PriorityQueue
先進先出,預設先出來的是最小的 (Ascending Order)
建構方式
可以帶入自定義的 Comparator,如:
1 | PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<>( |
新增元素
add()
訪問開頭元素
peek()
返回並刪除隊列開頭
poll()
Stream
Java 8 Stream
Math
比大小
Math.min(value1, value2);
Math.max(value1, value2);
絕對值
Math.abs(value);
printf
Java 格式化输出 printf 用法
1 | System.out.printf(); |
基礎型別的預設值
int
0
三元運算子
1 | 判斷式 ? 若判斷為真執行區塊 : 若判斷為假執行區塊 |
結語
隨著科技進步,記憶體容量大到唸不出單位了,我的腦容量卻是連有沒有 1 byte 都不清楚。
參考資料
Java 全栈知识体系
閒聊「Arrays.asList()」的坑