List
にはAPIドキュメントのsort()
メソッドがありますが、パラメータに必要なものが明確ではありません。現在の必要性は、非常に単純な直線的なアルファ比較のためである。Dartで文字列のリストを並べ替えるにはどうすればいいですか?
答えて
ご質問ありがとうございます!上記のコードが印刷さ
main() {
var fruits = ['bananas', 'apples', 'oranges'];
fruits.sort();
print(fruits);
}
:あなたはこのような文字列のリストを並べ替えることができますsort()
が値を返さないこと
apples, bananas, oranges
お知らせ。新しいリストを作成せずにリストをソートします。
print(fruits..sort());
は、より多くのコントロールのために、あなたがあなた自身の比較ロジックを定義することができます:あなたが並べ替えると同じ行に印刷したい場合は、方法カスケードを使用することができます。ここでは、価格に基づいて果物を分類する例を示します。
main() {
var fruits = ['bananas', 'apples', 'oranges'];
fruits.sort((a, b) => getPrice(a).compareTo(getPrice(b)));
print(fruits);
}
ここでは何が起こっているのか見てみましょう。
リストにはsortメソッドがあり、オプションのパラメータ:Comparatorがあります。コンパレータはtypedef
または関数のエイリアスです。ドキュメントから
int Comparator(T a, T b)
:この場合、それはのように見える関数のエイリアスです
より小さければコンパレータ機能が 負の整数を返すことによって、このような全順序を表し、 bがaと等しい場合は0、bがbより大きい場合は は正の整数です。次のように
が
がsort
に渡さ
(a, b) => foo(a, b)
で、一般的には、セスの詳細な回答にただ一点を追加するには、機能foo
は、整数の結果に答える必要があります。
- 場合< bの場合、結果は<,0,
- 、a = b、結果は0、および 0である必要があります。
- 場合> B、結果は
Comparable
Sでなければならない> 0
、両方a
とb
であるべきです。
今日の後、あなたはlist.sort()を実行できるはずです。 ソートメソッドの引数は現在オプションで、デフォルトでは、要素自体に対してcompareToを呼び出す関数になっています。 StringはComparableなので、今すぐ動作するはずです。
リストsort()メソッドはコンパレータ関数を必要としないように修正されましたか?あるいは退行があったか?私はUbuntu 12.04でDart 0.2.6.0_r15355を使用し、次の結果を得ています:[3,1,2] .sort()== nullと ['a'、 'c'、 'b']。sort )== null。 – devdanke
おっと! Dartは配列をソートしていましたが、sort()関数はvoidを返します:-(したがって "print([3,1,2] .sort())" "は" null "を出力します。流暢なプログラミングスタイルを実装していないので、そうしたいと思っています。そのため、すぐにsort()を呼び出した結果を使用することができます。 – devdanke
レイジーソーティング。結果はIQueryableです。
カスタムコンパレータを引数として渡すことができます。
import 'package:queries/collections.dart';
void main() {
var fruits = ["grape", "passionfruit", "banana", "mango",
"orange", "raspberry", "apple", "blueberry"];
var sorted = new Collection(fruits)
.orderBy((fruit) => fruit.length)
.thenBy((fruit) => fruit);
for(var fruit in sorted) {
print(fruit);
}
}
出力:
mango
banana
orange
blueberry
raspberry
passionfruit
- 1. Rustで文字列の文字を並べ替えるにはどうすればいいですか?
- 2. セイルで英数字の文字列を並べ替えるにはどうすればいいですか?
- 3. 文字列の文字を並べ替えるにはどうすればよいですか?
- 4. Scalaでクエリ文字列コンポーネントをバイト順で並べ替えるにはどうすればいいですか?
- 5. 配列を文字列長で並べ替え、次にPHPで値を並べ替えるにはどうすればよいですか?
- 6. 並べ替えで空の文字列を無視するにはどうすればよいですか?
- 7. アルファベット順と数字順で列を並べ替えるにはどうすればいいですか?
- 8. 他のリストの並べ替え順にスカラオブジェクトのリストを並べ替えるにはどうすればいいですか?
- 9. リスト内の単語で文字列を並べ替える
- 10. 距離に最も近いユーザーのリストを並べ替えるにはどうすればいいですか?
- 11. 2つのフィールドでScalaのリストを並べ替えるにはどうすればいいですか?
- 12. 文字列をintに変換したリストで並べ替え
- 13. woocommerceで古い注文の並べ替えを検出するにはどうすればいいですか?
- 14. 日付をCで並べ替える文字列リスト
- 15. 文字列リストを文字列で並べ替える最短方法
- 16. テーブルの値をリストに格納して並べ替えるにはどうすればいいですか?
- 17. カレンダーオカレンスに従って曜日のリストを並べ替えるにはどうすればいいですか?
- 18. Javaでグループ化してリストを並べ替えるにはどうすればいいですか?
- 19. SPSSで日付を並べ替えたり文字列を並べ替える方が速いのですか?もしそうなら、どれくらい?
- 20. 各文字列の母音の数によって、文字列配列を昇順に並べ替えるにはどうすればよいですか?
- 21. Rubyで配列を特定の順序で並べ替えるにはどうすればいいですか?
- 22. 文字列を文字列で並べ替える方法
- 23. 与えられた文字と長さに基づいて並べ替えのリストを生成するにはどうすればよいですか?
- 24. 数値辞書のリストを並べ替えるにはどうすればいいですか?
- 25. この配列を日付で並べ替えるにはどうすればいいですか?
- 26. 辞書の配列をキーで並べ替えるにはどうすればいいですか?
- 27. Railsモデルを配列にしないで並べ替えるにはどうすればよいですか?
- 28. 文字列の並べ替えはO(n^2logn)ですか?
- 29. 文字列を手動でループで並べ替えるには?
- 30. 数字を単語のように並べ替えるにはどうすればよいですか?
ありがとう!申し訳ありませんが、上記のような多彩な機能を評価しようとしていますが、以前の言語体験と直感的でインラインではありません。あなたには正方形の木製のマウスと長い灰色のひげがこのようなもののいくつかで登場する誰かを持っていますか? :) –
これは不思議な歴史的遺物です。コンパレータはオプションです。これまでは、オプションのパラメータ構文を変更していましたが、これを含めて、すべてのパラメータをしばらく非選択にする必要がありました。私たちはこれを修正して、もう一度オプションにするチャンスを得られませんでした。 – munificent
ありがとうございます@すぐに修正されることを嬉しく思います。バグhttp://code.google.com/p/dart/issues/detail?id=1235をご覧ください。 –