ソート/独自クラスのソートサンプル
の編集
Top
/
ソート
/
独自クラスのソートサンプル
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
AutoTicketLinkName
FrontPage
MenuBar
WikiWikiWeb
お約束
その他
その他/JavaでBeep(Bell)を鳴らすサンプルソース
その他/UnsupportedClassVersionErrorの原因及び対処法
その他/シェルに終了コードを渡す方法
システム関連
システム関連/Javaの情報を取得する
システム関連/Javaを実行するOS情報を取得する
ソート
ソート/ArrayListのソートサンプル
ソート/独自クラスでキー指定のソートサンプル
ソート/独自クラスのソートサンプル
ネットワーク
ネットワーク/HTTP(GET)サンプルソース
ファイル操作
ファイル操作/basename,dirnameのサンプル
ファイル操作/CSV取込みサンプルを作ってみた
ファイル操作/サブディレクトリ内を含むファイル一覧を取得
ファイル操作/テキストファイルの出力
ファイル操作/テキストファイルの読み込み
ファイル操作/ディレクトリ配下のファイルを削除する
ファイル操作/デフォルトのファイル文字コードを確認する
ファイル操作/デフォルトの改行コードを確認する
ファイル操作/ファイルかディレクトリかを確認する
ファイル操作/ファイルの削除
ファイル操作/ファイルを追記モード開き文字列を追加する
ファイル操作/ファイル・ディレクトリの有無(存在)確認
ファイル操作/ファイル一覧を標示する
プライバシーポリシー
変数操作
変数操作/メンバ変数の初期値はどのような値になっているか
変数操作/数値から文字列に変換するサンプルソース
変数操作/文字列から数値に変換するサンプルソース
数値操作
数値操作/数値をカンマ区切りで整形したい
数値操作/数値をカンマ区切りで整形し+記号を付けたい
数値操作/数値型の最大値・最小値
文字列操作
文字列操作/文字列が数字のみで構成されているかを確認する
文字列操作/文字列のリーバス(反転)
文字列操作/英字の大文字・小文字変換サンプル
日時操作
日時操作/DATEから年月日を抽出するサンプル
日時操作/うるう年のチェックを行う
最初にお読みください
標準入出力
標準入出力/STDOUTとSTDERRに出力する方法
標準入出力/パイプによるデータを受け取る方法
環境
環境/Eclipseで変数名なども補完できるようにする
環境/native2asciiで変換された文字列をもとに戻す
環境/UbuntuにaptコマンドでNetBeansをインストールしてみる
逆引きJavaサンプル
配列等操作
配列等操作/ArrayListのリバース(反転)サンプル
配列等操作/HashMapを使ったサンプル
#navi(../) * 独自クラスのソートサンプル [#w519501a] 独自クラスを作成してArrayListに入れてソートするサンプルソースおよび実行例を以下に記します。~ 尚、今回のサンプルソースは固定のメンバ変数をもとにソートするサンプルとなっています。~ 対象となる複数のメンバー変数があり、処理によりソートキーを指定した場合は、以下のリンクを参照ください。 -[[独自クラスでキー指定のソートサンプル>ソート/独自クラスでキー指定のソートサンプル]] #contents * 関連記事 [#rb9bba8b] -[[ArrayListのソートサンプル>ソート/ArrayListのソートサンプル]] //-[[独自クラスのソートサンプル>ソート/独自クラスのソートサンプル]] -[[独自クラスでキー指定のソートサンプル>ソート/独自クラスでキー指定のソートサンプル]] * 独自クラスのソートサンプルソース [#d44de8bf] 以下のサンプルソースでは、OperationSystemというクラスを作り、これをArrayListにaddし、~ ソートするサンプルソースとなっています。~ ソートキーはmarketShareを使用しています。 #ref(OrigListSort.java) import java.util.ArrayList; import java.util.Collections; class OperationSystem implements Comparable<OperationSystem > { 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.marketShare + "%"; } @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<OperationSystem>(); // 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 XP : 7.0%, macOS : 2.0%, Windows 7 : 49.0%, Linux : 1.0%] Collections.sort: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%, Windows XP : 7.0%, Windows 10 : 27.0%, Windows 7 : 49.0%] -- reverse -- before: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%, Windows XP : 7.0%, Windows 10 : 27.0%, Windows 7 : 49.0%] Collections.reverse: [Windows 7 : 49.0%, Windows 10 : 27.0%, Windows XP : 7.0%, Windows 8.1 : 3.0%, macOS : 2.0%, Linux : 1.0%] 使用した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というクラスを作り、これをArrayListにaddし、~ ソートするサンプルソースとなっています。~ ソートキーはmarketShareを使用しています。 #ref(OrigListSort.java) import java.util.ArrayList; import java.util.Collections; class OperationSystem implements Comparable<OperationSystem > { 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.marketShare + "%"; } @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<OperationSystem>(); // 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 XP : 7.0%, macOS : 2.0%, Windows 7 : 49.0%, Linux : 1.0%] Collections.sort: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%, Windows XP : 7.0%, Windows 10 : 27.0%, Windows 7 : 49.0%] -- reverse -- before: [Linux : 1.0%, macOS : 2.0%, Windows 8.1 : 3.0%, Windows XP : 7.0%, Windows 10 : 27.0%, Windows 7 : 49.0%] Collections.reverse: [Windows 7 : 49.0%, Windows 10 : 27.0%, Windows XP : 7.0%, Windows 8.1 : 3.0%, macOS : 2.0%, Linux : 1.0%] 使用した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) ソート・逆ソートされているのが確認できます。~ 以上、独自(自作)クラスをソート・逆ソートするサンプルソースでした。
テキスト整形のルールを表示する
添付ファイル:
OrigListSort.java
312件
[
詳細
]