- ベストアンサー
C# ArrayList内の要素の並べ替え
- C#についての質問です。ArrayListを用いた情報管理リストのプログラムにソート機能を実装したいです。特定のフィールドを基準に昇順または降順にソートする方法がわかりません。
- C#についての質問です。ArrayList内の要素を特定のフィールドを基準に昇順または降順にソートする方法について教えてください。
- C#について質問があります。ArrayListを使用した情報管理リストのプログラムにソート機能を追加したいですが、IComparableやIComparer以外でソートを実装する方法がわかりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- C# ArrayListを二次元配列のように使用したい。
C#についての質問です。 現在、ArrayListを用いた情報管理リストのプログラムを作成しています。 そのプログラムにソートを行う機能と、検索機能をつけたいのですが、そこで質問です。 ArrayList内の要素を、「特定のフィールド(例えば氏名であったり、年齢であったりするのですが…)を基準として昇順または降順にソートする」という処理、またあるフィールドのみを基準に検索を行うという処理を行う際、ArrayListを二次元配列のように使用することが出来たら便利だな、と思ったのですが、そのようなことは可能でしょうか? いろいろと試したり、独自に調べてはみたのですが、いまいちわからず、質問させていただきました。 お分かりになられる方がいらっしゃいましたら、ご教授いただければと思います。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- ArrayListなどのソート
いつもお世話になっています。ArrayListなどをソートする際に、Comparatorインターフェースを実装したクラスを利用して、辞書順や数値順などでソートすることは出来ますよね。これを任意の単語の順番にソートするにはどのようにすればよいのでしょうか。つまり、下記例において、文字列順ではなくて、"ONE", "TWO", "THREE", "FOUR"の順番にソートしたいのです。 ArrayList list = new ArrayList(); list.add("THREE"); list.add("ONE"); list.add("FOR"); list.add("TWO"); やはりcompare()メソッド内で総当り的に比較するしかないのでしょうか。 開発環境はJDK1.4です。事情により返答が遅れてしまうかもしれませんが、どうぞ宜しくお願い致します。
- ベストアンサー
- Java
- ArrayListでの要素の取り出し
Javaについて質問です。 名前順にソートしたArrayListのある要素だけを取り出して、 DefaultListModelに追加していきたいのですが、 book = new AddressBook(); book.add(new Address(太郎,住所,電話番号,メールアドレス)) book.add(new Address(花子,住所,電話番号,メールアドレス)) この例で、1番目の要素の名前だけ取り出すにはどうすればいいのでしょうか。 model.clear(); book.shellSort(); for(int i = 0; i < book.size(); i++){ String[] field = (String)book.get(i).split(",");//←ここでエラーになります。 model.addElement(field[0]); } ObjectとStringの扱いが分からず立往生です… 回答お待ちしております。
- 締切済み
- Java
- ArrayListのソートについて
プログラム上でListViewのカラムをクリックするとソートされる プログラムを作ろうと入れたのですが、リストはソートされるのに 中身(ArrayList)がソートされていないためソート後のアイテムを クリックしても違う値しか出てきません。 それにはArrayListのソートが必要と言う事が書いてあったので 実装をしてみたのですが、比較ができないようなエラーが出て うまくソートもできませんでした。 どうすればListViewのカラムソートと連動してArrayListのソートが 出来るようになるでしょうか? 開発環境はVS2005(C#) .NET2.0です。 サンプルクラスは以下の通りです。 public void UpdateListView() { ArrayList list = null; if (listView1.Columns[1].Text == "差出人") { // 受信メールの場合 list = collectionMail[RECEIVE]; } else if (listView1.Columns[1].Text == "差出人または宛先") { // 削除メールの場合 list = collectionMail[DELETE]; } listView1.BeginUpdate(); // リストビューの内容をクリアする listView1.Items.Clear(); // ListViewを設定する foreach (Mail mail in list) { ListViewItem item = new ListViewItem(mail.subject); item.SubItems.Add(mail.address); listView1.Items.Add(item); } listView1.EndUpdate(); } private void Form1_Load(object sender, EventArgs e) { // ListViewにアイテムを追加する for (int no = 0; no < subject.Length; no++) { Mail mail = new Mail(subject[no], address[no], body[no]); collectionMail[RECEIVE].Add(mail); } UpdateTreeView(); UpdateListView(); } public class Mail { public string subject; public string address; public string body; public Mail(string subject, string address, string body) { this.subject = subject; this.address = address; this.body = body; } }
- ベストアンサー
- その他(プログラミング・開発)
- ArrayListはListのデフォルト実装とは?
「ArrayListはListのデフォルト実装」と書いてあるのですが、どういう意味でしょうか? http://topickup.web.fc2.com/java/list_arraylist.html ■自分の理解 ・List … インターフェイス ・ArrayList … インターフェイスを実装するクラスの中の一つ。どの実装クラスを利用するかはユーザーが選択? ■疑問点 ・Listインターフェイスのリファレンスに、デフォルト実装について明記されているかと思ったのですが、見つかりません ・どこかに書いているのでしょうか? http://docs.oracle.com/javase/jp/7/api/java/util/List.html ・検索したら、似た言葉で「デフォルトメソッド」があるのですが、「デフォルト実装」と同じ意味でしょうか? ・「デフォルトメソッド」はJava8の新機能? Java7以下では使えない?
- ベストアンサー
- Java
- エクセルの並べ替えは充分な機能ではないですよね?
エクセルの並べ替えは充分な機能ではないですよね? 多数のリストを並べ替えするとき、必ずしも昇順、降順に正しく並べ替えられません。 私の他にも経験者の方いらっしゃいますか?
- ベストアンサー
- オフィス系ソフト
- C言語の問題なのですが、分からないので教えて下さい
以下のようなメニューを表示し,各項目の機能を実現して結果を表示するプログラムを作成せよ。 リストは1つとし,初期値は「15 4 32 1」である。 ・データの追加,削除を行う関数を作成する。 ・データの追加に関して,そのデータはリストの最後に挿入されるものとする。 ・データのソート(降順)を行う関数を作成する。 ・リストの平均値を計算し出力する関数を作成する。 ------表示例------- 1.データの追加 2.データの削除 3.データのソート(降順) 4.リストの平均値 5.終了 何を実行しますか: ------------------- ------実行例------- 1.データの追加 2.データの削除 3.データのソート(降順) 4.リストの平均値 5.終了 何を実行しますか:1 追加するデータを入力してください:10 リスト: 15 4 32 1 10 1.データの追加 2.データの削除 3.データのソート(降順) 4.リストの平均値 5.終了 何を実行しますか:4 リストの平均値:12.4 リスト: 15 4 32 1 10 1.データの追加 2.データの削除 3.データのソート(降順) 4.リストの平均値 5.終了 何を実行しますか:3 リスト: 32 15 10 4 1
- 締切済み
- C・C++・C#
- STLのlistのソートについて教えてください。
STLで何か作ってみようと思っているのですが、複数のメンバを持つ構造体オブジェクトのリスト(要素の値が構造体オブジェクトであるリスト)を、その構造体オブジェクトのメンバの中の1つのをキーとして昇順、又は降順にソートしようとした場合、どのようにすればよいのでしょうか?? http://www5c.biglobe.ne.jp/~ecb/cpp/07_08.html ここを見ると、sort() という関数があるようですが、単に昇順でソートする、としか書いていなく、構造体のリストのソートはどうするのだろうと疑問です。 詳しい方いらっしゃいましたらご教授頂けると幸いです。
- ベストアンサー
- C・C++・C#
- ArrayListのパッケージがlistでない理由
・パッケージについて教えてください ■質問1 ・ArrayListのパッケージは、どうして「java.util.List」ではなくて「java.util.ArrayList」なのでしょうか? ・ArrayListは、Listインターフェイス実装クラスなのでListに紐付いている、と思ったのですが… ・「java/util/List.interface」と「java/util/ArrayList.class」は並列の位置づけになるのでしょうか? ・そういう決まりだから? ・Listインターフェイスのパッケージ名は下記で確認するのでしょうか? ・http://docs.oracle.com/javase/jp/7/api/java/util/List.html ■質問2 ・「import java.util.*;」表記ができるなら、全部これで良いようにも思うのですが、どういう風に使い分けるのでしょうか? ・普通はどちらを使う、とかあるのでしょうか?
- ベストアンサー
- Java
- ASP.NET 2.0(C#) GridViewのソート機能をデフォルトで降順にしたい
GridViewコントロールで「並べ替えを有効」にすると、各フィールドごとに、ヘッダーのリンクをクリックするたびに昇順→降順でソートできるようになりますが、これをあるフィールドだけ、降順→昇順にすることはできないでしょうか? GridView1のSortingイベントで protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { //hogeフィールドだけデフォルトで降順にしたい if (e.SortExpression == "hoge") { if (e.SortDirection == SortDirection.Ascending) e.SortDirection = SortDirection.Descending; else e.SortDirection = SortDirection.Ascending; } } などとしてみたのですが、これでは常に降順になってしまいます。 よろしくお願いします。
- ベストアンサー
- Microsoft ASP
お礼
おっしゃるとおりですね! 調べているとどうしてもIComparable および IComparerを使用する方法ばかりが見つかるので、自分でソートルーチンを作ることがすっかり頭から抜け落ちていました;; コードの一例まで記述してくださってありがとうございました!