Comparable Comparator
Comparable? java.lang ??? ??? ??? ????? ?? ??????. Comparable? ???? ???? ??? ??? ? ????. ?? ??? ?? ?? ???? CompareTo? ??? ?? ?????.
compare ?? ?? -1, 0, 1???. ???? ?? ???? ?? 1? ????, ??? 0?, ?? ???? ??? -1? ?????.
Collections.sort
? Arrays.sort
? Comparable? ???? ??? ???? ??? ? ????. Collections.sort
和 Arrays.sort
可以自動對實現(xiàn) Comparable 的對象進(jìn)行排序。
免費(fèi)在線學(xué)習(xí)視頻推薦:java學(xué)習(xí)
示例如下,我們構(gòu)建一個 node 對象,并通過 node 對象之間的比較驗證 Comparable 的用法。
node 對象的實現(xiàn)如下:
public class Node implements Comparable<Object>{ private int num; private String name; @Override public String toString() { return "num=" + num + " name=" + name; } public Node(int num, String name) { super(); this.num = num; this.name = name; } public Node() { super(); } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int compareTo(Object o) { Node node = (Node)o; return this.num - node.getNum(); } }
可以看到,我們?yōu)?Node 實現(xiàn)了 Comparable 接口,并且重寫了 compareTo 方法。
先測試一下,我們創(chuàng)建10個 Node 對象并添加進(jìn) List 中,然后把順序打亂。
public class MyTest { public static void main(String[] args) { List<Node> list = new ArrayList<Node>(); for(int i = 0;i < 10;i++) { list.add(new Node(i,"node")); } //打亂順序 Collections.shuffle(list); for (Node node : list) { System.out.println(node); } } }
顯示結(jié)果如下:
num=7 name=node num=0 name=node num=5 name=node num=9 name=node num=6 name=node num=3 name=node num=4 name=node num=8 name=node num=1 name=node num=2 name=node
現(xiàn)在輸出是亂序的,接下來我們使用 Collections.sort 對其進(jìn)行排序。
public class MyTest { public static void main(String[] args) { List<Node> list = new ArrayList<Node>(); for(int i = 0;i < 10;i++) { list.add(new Node(i,"node")); } //打亂順序 Collections.shuffle(list); Collections.sort(list); for (Node node : list) { System.out.println(node); } } }
Collections.sort 其實是按 compareTo 方法中的定義進(jìn)行比較,我們之前定義了按照 num 的升序進(jìn)行排序,現(xiàn)在排序結(jié)果如下:
num=0 name=node num=1 name=node num=2 name=node num=3 name=node num=4 name=node num=5 name=node num=6 name=node num=7 name=node num=8 name=node num=9 name=node
Comparator比較器
Comparator
位于 java.util
# ????#
??? ??? ????. ?? ??? ???? ?? ?? ?? ??? ?? Comparable? ???? ?????. ?? ??? ??? ??? ????:Collections.sort(List<T> list, Comparator<? super T> c); Arrays.sort(T[] a, Comparator<? super T> c);????? ??? Node? ?? Comparable ?????? ???? CompareTo ???? ???????.
?? ????? ?? 10?? Node ??? ???? ?? ??? ??? ?? ??? ????.
public class Node{ private int num; private String name; @Override public String toString() { return "num=" + num + " name=" + name; } public Node(int num, String name) { super(); this.num = num; this.name = name; } public Node() { super(); } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
??? ??? ?? ?????.
public class MyTest { public static void main(String[] args) { List<Node> list = new ArrayList<Node>(); for(int i = 0;i < 10;i++) { list.add(new Node(i,"node")); } //打亂順序 Collections.shuffle(list); Collections.sort(list, new Comparator<Node>() { @Override public int compare(Node o1, Node o2) { return o2.getNum()-o1.getNum(); } }); for (Node node : list) { System.out.println(node); } } }?? ??? ???????. ???? Collections.sort? ???? ?????.
num=9 name=node num=8 name=node num=7 name=node num=6 name=node num=5 name=node num=4 name=node num=3 name=node num=2 name=node num=1 name=node num=0 name=nodeCollections.sort? ??? CompareTo ???? ??? ?? ?????. ??? num? ?????? ??? ??????. ?? ?? ??? ??? ????.
rrreee#???? ##?? ??#Comparator
?? ??? ????? ?? ???? ???? ???? ???. ?? ?? ??? ???? ???? Comparator ????? ??? ? ??? ??? ? ????. #????#rrreee#????#?? Node ??? ???? ? ?? Comparable? ???? ????. #????#rrreee#????#??? ???? ???? ???? ??? ????? ???. #????#rrreee#????#??? ??? ????. #????##????#rrreee#????#Comparator? ?? ??? ?????. #????##????##????#Summary#????##????##????#Comparable? ?? ?????, Comparator? ?? ??????. ???? Comparable ?????? ???? ??? ???? ?? ?????. ????? Comparator ??? ??? ? ? ????. ?? ???? ?? Comparable ????? ??? ??? Comparator? ???? ? ???. ???? ?? ????? ???? ? ? Comparable? ?? ???? ???? ?? ?????. #????##????#? ??? #????#java?? ??#????# ???? ??? ????. ??? ?? ???? ?? ? ????. #????#? ??? Java?? Comparator? Comparator? ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











Java? ????? ????? ??? ??? ?? ???? ?? ?? ??????, ?? ? ???? ? ??? ????. ?? ???? ??? ??? ???? ??? ??? ???? ?? ??? ??? ????. ???? ???? ??? ??, ?? ??? ???? ???? ?? ??? ?? ???? ?? ?????. ???? ?? ?? ??? ?? ?? ??? ?????. ?????? ?? ??? ??? ???? ?? ??? ??? ?? ??? ???? ???? ??? ?? ??? ?????? ???? ????? ??? ?? ?? ???, ?? ? ?? ???? ??? ??? ?????. ???? urlclassl? ?? ??? ??? ??? ?? ? ? ????

Java? ??? ?? ??, ?? ? ??? (? : Projectreactor) ? Java19? ?? ???? ??? ??? ?????? ?????. 1. CompletableFuture? ?? ??? ?? ?? ??? ? ?? ??? ????? ?? ??????? ? ?? ??? ?????. 2. Projectreactor? ?? ? ??? ??? ???? ?? ???? ? ??? ???? ?? ? ?????? ?????. 3. ?? ???? ??? ??? ??? I/O ??? ? ??? ???? ?? ??? ????? ??? ???? ????. ? ???? ?? ??? ????? ??? ??? ??? ?? ??? ??? ?????? ???? ???? ?? ?? ??? ??????.

Javanio? Java 1.4? ?? ? ??? IOAPI???. 1) ?? ? ??? ?????, 2) ??, ?? ? ??? ?? ?? ??, 3) ? ??? ??? ???? 4) ?? ??? ?? IO?? ? ????? ?????. 1) ? ?? IO? ??? ?? ??? ???, 2) ??? ??? ?? ???? ?????, 3) ???? ?????? ???? 4) ??? ?? ??? ?? ?? ? ??? ?????. 1) ??? ??/??? ??? ?? ?????, 2) ???? ???? ???? ?? ???? ???????. 3) ??? ??? ??? ???????.

??? ?? ???? Java?? ?? ???? ????? ?? ?????? ???? ? ???? GUI ??????? ??? ??? ?? ?? ??? ?????? ??? ???? ? ?????. ?? ??? ??? ??? ?? ???? ??? ????? ?? ?????, ??? ? ?? ??? ?????? ??? ????????. ??? ????? ???? ????? ????. ?? ??? ?? ? ? Java8? Lambda ???? ?? ? ? ????.

Java?? ??? ?? ?? ??? ???? ? ?????. ?? ???? ??? ?????. 1. ?? ?? ? ???? ??????? ?? ?? ?? ??? ???? ??? ?????. 2. ?? ??, ???, ??? ?? ?? ?? ???? ????? ?? ??? ??? ??? ?????. 3. ENUMMAP ? ENUMSET? ???? ?? ? ?? ???? ???? ??? ???? ? ?????? ?????. 4. ?? ?, ??? ?? ?? ??? ?? ????? ?? ??? ??? ?????.? ????? ?? ???? ????????. ??? ???? ???? ?? ??? ????? ??? ?? ? ??? ?? ?????? ???????.

???? ??? ?? ? ?? ??? ?????? ?? ??? ?? ?? ??? ??????? ?? ???? ?????. 1. USDT ? USDC? ?? Fiat ?? ?? ??; 2. DAI? ?? Cryptocurrency ?? ??; 3. ???? ??? ??? ? ????. ?? ??? ?? ??? ?? ??? ?? ?? USDT? ??? ???? ?????. USDC? ?? ??? ????? ?????. DAI? ?? ????? ?????. TUSD? ? ?? ??? ??? ?????. Busd? ???? ?? ???? ?? ???? ???? ????. USDP? ?? ?? ??? ???? ?????. ? ? ?? ????? ?? ?????.

?? ????? ?? ?? ?????? ?? ???????. ??? ????? ???? ?? ??, ??? ? ?? ?????, ???, ???? ??? ??? ? ????. ?? ?? ??? ?? ?? ???? ???? ?? ??, ?? ??? ? ?? ???? ??? ?? ??? ??? ???? ???? ??? ?????. 1. ?? ???? ?? ???? ???? ?? ??? ????? ?? ? ???? ???? ????? ?????. 2. ?? ?? ??? ????? ??? ? ??? ??? ????? ?? ???; 3. ?? ??? ???? ????? Uniswap, Pancakeswap, Opensea, AAVE? ?? ?? ? ???? ?????. 4. ?? ??? ???? ????? ?? Binanc? ?????

Java? Singleton Design Pattern? ???? ??? ???? ? ?? ?? ??? ? ?? ??? ?? ??? ??? ???? ???? ?? ???? ?? ???? ???? ??? ?????. ?? ???? ??? ?????. 1. ?????, ? ????? ? ?? ??? ?? ? ?? ????, ?? ?? ??? ?? ??? ???? ?? ??? ?????. 2. ???-?? ??, ??? ?? ?? ?? ?? ??? ?? ?? ??? ???? ??? ???? ? ???? ?? ??? ????. 3. ??? ?? ?? ????? ?? ????? ??? ??? ?? ??? ? ??? ??? ?? ?? ????? ?????. 4. ?? ??? ???? ???, ??? ??? ? ?? ??? ???? ?? ??? ???? ??? ??? ?????. ?? ??? ?? ?? ?? ??? ??? ? ????.
