ソート/独自クラスのソートサンプル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 独自クラスのソートサンプル [#w519501a]
独自クラスを作成してArrayListに入れてソートするサンプルソ...
尚、今回のサンプルソースは固定のメンバ変数をもとにソート...
対象となる複数のメンバー変数があり、処理によりソートキー...
-[[独自クラスでキー指定のソートサンプル>ソート/独自クラス...
#contents
* 関連記事 [#rb9bba8b]
-[[ArrayListのソートサンプル>ソート/ArrayListのソートサン...
//-[[独自クラスのソートサンプル>ソート/独自クラスのソート...
-[[独自クラスでキー指定のソートサンプル>ソート/独自クラス...
* 独自クラスのソートサンプルソース [#d44de8bf]
以下のサンプルソースでは、OperationSystemというクラスを作...
ソートするサンプルソースとなっています。~
ソートキーはmarketShareを使用しています。
#ref(OrigListSort.java)
import java.util.ArrayList;
import java.util.Collections;
class OperationSystem implements Comparable<OperationSys...
String productName;
double marketShare;
// constracter
public OperationSystem(String osname, double share) {
this.productName = osname;
this.marketShare = share;
}
public String toString() { // for System.out.println
return this.productName + " : " + this.marketSha...
}
@Override
public int compareTo(OperationSystem o) {
if (o.marketShare < this.marketShare) return 1;
if (o.marketShare > this.marketShare) return -1;
return 0;
}
}
public class OrigListSort {
public static void main(String[] args) {
ArrayList<OperationSystem> osl = new ArrayList<O...
// set data
osl.add(new OperationSystem("Windows 8.1", 3.0D));
osl.add(new OperationSystem("Windows 10", 27.0D));
osl.add(new OperationSystem("Windows XP", 7.0D));
osl.add(new OperationSystem("macOS", 2.0D));
osl.add(new OperationSystem("Windows 7", 49.0D));
osl.add(new OperationSystem("Linux", 1.0D));
System.out.println("-- sort --");
System.out.println("before: " + osl);
Collections.sort(osl);
System.out.println("Collections.sort: " + osl);
System.out.println("-- reverse --");
System.out.println("before: " + osl);
Collections.reverse(osl);
System.out.println("Collections.reverse: " + osl);
}
}
OperationSystemクラスにcompareToメソッド実装しています。~
これは、ComparableのcompareToをOverrideしています。~
比較し、1, -1, 0を返却しています。~
(大きい、小さい、同じを意味しています。)
* 実行結果 [#c44f6748]
上記のサンプルソースをコンパイルし、実行した時の出力結果...
$ javac OrigListSort.java
$ java OrigListSort
-- sort --
before: [Windows 8.1 : 3.0%, Windows 10 : 27.0%, Windows...
Collections.sort: [Linux : 1.0%, macOS : 2.0%, Windows 8...
-- reverse --
before: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%,...
Collections.reverse: [Windows 7 : 49.0%, Windows 10 : 27...
使用したJDKのバージョンは以下の通りです。
$ javac -version ; java -version
javac 1.8.0_102
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) Client VM (build 25.102-b14, mixed mode)
ソート・逆ソートされているのが確認できます。~
以上、独自(自作)クラスをソート・逆ソートするサンプルソー...
終了行:
#navi(../)
* 独自クラスのソートサンプル [#w519501a]
独自クラスを作成してArrayListに入れてソートするサンプルソ...
尚、今回のサンプルソースは固定のメンバ変数をもとにソート...
対象となる複数のメンバー変数があり、処理によりソートキー...
-[[独自クラスでキー指定のソートサンプル>ソート/独自クラス...
#contents
* 関連記事 [#rb9bba8b]
-[[ArrayListのソートサンプル>ソート/ArrayListのソートサン...
//-[[独自クラスのソートサンプル>ソート/独自クラスのソート...
-[[独自クラスでキー指定のソートサンプル>ソート/独自クラス...
* 独自クラスのソートサンプルソース [#d44de8bf]
以下のサンプルソースでは、OperationSystemというクラスを作...
ソートするサンプルソースとなっています。~
ソートキーはmarketShareを使用しています。
#ref(OrigListSort.java)
import java.util.ArrayList;
import java.util.Collections;
class OperationSystem implements Comparable<OperationSys...
String productName;
double marketShare;
// constracter
public OperationSystem(String osname, double share) {
this.productName = osname;
this.marketShare = share;
}
public String toString() { // for System.out.println
return this.productName + " : " + this.marketSha...
}
@Override
public int compareTo(OperationSystem o) {
if (o.marketShare < this.marketShare) return 1;
if (o.marketShare > this.marketShare) return -1;
return 0;
}
}
public class OrigListSort {
public static void main(String[] args) {
ArrayList<OperationSystem> osl = new ArrayList<O...
// set data
osl.add(new OperationSystem("Windows 8.1", 3.0D));
osl.add(new OperationSystem("Windows 10", 27.0D));
osl.add(new OperationSystem("Windows XP", 7.0D));
osl.add(new OperationSystem("macOS", 2.0D));
osl.add(new OperationSystem("Windows 7", 49.0D));
osl.add(new OperationSystem("Linux", 1.0D));
System.out.println("-- sort --");
System.out.println("before: " + osl);
Collections.sort(osl);
System.out.println("Collections.sort: " + osl);
System.out.println("-- reverse --");
System.out.println("before: " + osl);
Collections.reverse(osl);
System.out.println("Collections.reverse: " + osl);
}
}
OperationSystemクラスにcompareToメソッド実装しています。~
これは、ComparableのcompareToをOverrideしています。~
比較し、1, -1, 0を返却しています。~
(大きい、小さい、同じを意味しています。)
* 実行結果 [#c44f6748]
上記のサンプルソースをコンパイルし、実行した時の出力結果...
$ javac OrigListSort.java
$ java OrigListSort
-- sort --
before: [Windows 8.1 : 3.0%, Windows 10 : 27.0%, Windows...
Collections.sort: [Linux : 1.0%, macOS : 2.0%, Windows 8...
-- reverse --
before: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%,...
Collections.reverse: [Windows 7 : 49.0%, Windows 10 : 27...
使用したJDKのバージョンは以下の通りです。
$ javac -version ; java -version
javac 1.8.0_102
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) Client VM (build 25.102-b14, mixed mode)
ソート・逆ソートされているのが確認できます。~
以上、独自(自作)クラスをソート・逆ソートするサンプルソー...
ページ名: