Javaプログラミング:オブジェクト向け(4)Compareable-オブジェクトソート


Comparable


Comparentインタフェースは、Array/ArrayListをアルファベット順または数値昇順/降順でソートできます.使用するには、次のようにCollectionsクラスをインポートします.
import java.util.Collections;

Integer


まずInteger ArrayListをリストします.
フォーマットはCollections.sort(ArrayList 이름)と同じです.
Arrayの場合、Arrays.sort(arr);
public class Main{
	ArrayList<Integer> integerList = new ArrayList<>();
    integerList.add(2);
    integerList.add(8);
    integerList.add(4);
}
Collections.sort(integerList);
// 작은 숫자부터 나열됨.

System.out.println(integerList);
// [2,4,8]

String

public class Main{
	ArrayList<Integer> StrList = new ArrayList<>();
    StrList.add("Abby");
    StrList.add("Cathy");
    StrList.add("Bobby");
}
Collections.sort(StrList);
// 알파벳순으로 나열됨.

System.out.println(StrList);
// [Abby, Bobby, Cathy]

カスタムクラス


以下のArrayListがあります.この場合、アルファベット順、昇順、降順のいずれかを指定する必要があります.
public class Main{
	ArrayList<Dog> dog = new ArrayList<>();
    dog.add("mimi","3");
    dog.add("chichi","1");
    dog.add("Hani","2");
}
以下のコードで記述されたdog.Javaファイルがあると言ってください.まずimplements Comparable<class명>の形で実施する.
<>にclass名を入力するのはtype変数を制限するためです.
public class Dog implements Comparable<Dog>{
	public final String name;
    public final int age;
    
    public Dog(String name, int age){
    	this.name = name;
    	this.age = age;
    }
    
    @Override
    public String toString(){
    	return name + " " + age + "살";
    }
その後、compareTo()の方法でソートすることができる.
    @Override
    public int compareTo(Dog d){
    return name.compareTo(d.name); //이름-알파벳순
    //return age - d.age; // 나이-오름차순
    //return d.age - age; // 나이-내림차순
   	}
このコードに基づくソート例を以下に示す.
name.compareTo(d.name); //이름-알파벳순
age - d.age; 			//나이-오름차순 
d.age - age; 			//나이-내림차순