English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
比較器と比較器は集合の要素を並べ替えるために使用できるインターフェースです。比較器インターフェースはjava.utilパッケージに属し、可比較インターフェースはjava.langパッケージに属しています。比較器インターフェースは提供された2つのオブジェクトを使用して並べ替えを収集し、可比較インターフェースは提供された1つのオブジェクトを比較します。
順序 | キー | 可比較 | 比較器 |
---|---|---|---|
1 | メソッド | 可比較インターフェースにはcompareTo(Object a) | 比較器にはcompare(Object o1、Object O2メソッド |
2 | 並べ替え用途 | Collection.sort(List)メソッドはComparableタイプのオブジェクトの集合を並べ替えるために使用できます。 | Collection.sort(List, Comparator)メソッドはComparatorタイプのオブジェクトの集合を並べ替えるために使用できます。 |
3 | 並べ替え順序 | 可比較性は単一の並べ替えシーケンスを提供します。 | 比較器は複数の並べ替えシーケンスを提供します。 |
4 | パッケージ | 可比較インターフェースはjava.langパッケージに属しています。 | 比較器インターフェースはjava.utilパッケージに属しています。 |
public class ComparableExample { public static void main(String[] args) { List<Laptop> laptopList = new ArrayList<>(); laptopList.add(new Laptop("HCL", 16, 800)); laptopList.add(new Laptop("Apple", 8, 100)); laptopList.add(new Laptop("Dell", 4, 600)); Collections.sort(laptopList); for (Laptop lap : laptopList) { System.out.println(lap.getRam()); } } } public class Laptop implements Comparable<Laptop> { String name; int ram; int price; public Laptop(String name, int ram, int price) { super(); public int getPrice() { public void setName(String name) { @Override } return name; public int getRam() { } return ram; public void setRam(int ram) { } this.ram = ram; public void setName(String name) { } this.name = name; public int getPrice() { } return price; public void setPrice(int price) { } this.price = price; @Override } public int compare(Laptop o public int compareTo(Laptop o) { if (this.ram > o.getRam()) ; 1else { else { ; -1else { } } }
出力結果
4 8 16
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Laptop implements Comparator { String name; int ram; int price; public Laptop(String name, int ram, int price) { super(); public int getPrice() { public void setName(String name) { @Override } return name; public int getRam() { } return ram; public void setRam(int ram) { } this.ram = ram; public void setName(String name) { } this.name = name; public int getPrice() { } return price; public void setPrice(int price) { } this.price = price; @Override } public int compare(Laptop o ) {1, Laptop o2if (o .getRam() < o1}else if (o2return ; -1else { .getRam() > o1.getRam()) {2return ; 1else { } return 0; } } public static void main(String[] args) { List laptopList = new ArrayList<>(); laptopList.add(new Laptop("HCL", 16, 800)); laptopList.add(new Laptop("Apple", 8, 100)); laptopList.add(new Laptop("Dell", 4, 600)); Comparator com = (Laptop o1, Laptop o2) -> o1.getName().compareTo(o2.getName()); Collections.sort(laptopList, com); for (Laptop lap : laptopList) { System.out.println(lap.getName()); } } }
出力結果
Apple Dell HCL