LinkedHashSet を並べ替えることができるかどうか疑問に思っています。発言してみた
Collections.sort((List<Comparable> paragraph);
ただし、リストにキャストできないというエラーがスローされるだけです。これを行う方法はありますか、それとも別のデータ構造を使用する必要がありますか?
比較に基づく順序付け (ソート順など)が必要な場合は、 SortedSet
as などをTreeSet
使用する必要があります。ConcurrentSkipListSet
Aは、広告掲載オーダーLinkedHashSet
に基づいて順序を維持します。
本当に使用したい場合はCollections.sort
、実際に a を構築することで LHS を List に変換できますList
(ただし、質問では の型がわからないparagraph
ので、 であると仮定しますString
)
List<String> listParagraph = new ArrayList<String>(paragraph);
Collections.sort(listParagraph)
しかし、それはおそらく最良のアプローチではありません。
Collections.sortは では機能せずSet
、 でのみ機能しList
ます。に既にあるデータを並べ替える必要がある場合は、Set
最初にそれらを に追加することをお勧めしますList
。
LinkedHashSet オブジェクト (linkedHashSet) を TreeSet に追加すると、ソートされます。
TreeSet<T> treeSet = new TreeSet<t>();
treeSet.addAll(linkedHashSet);
treeSet はソートされたセットです。
これらの T 型を比較可能にする必要があることに注意してください (Comparator インターフェイスを実装することにより)。
はい、できます。Java 8 は私たちの生活を楽にしてくれました :)
リンクリストの作成(私には簡単に見えます。LinkedHashSetに直接挿入できます)
LinkedList<String> lList = new LinkedList<String>();
lList.add("Ravi");
lList.add("Vijay");
lList.add("Ravi");
lList.add("Ajay");
lList.add(null);
LinkedHashSet<String> lHashSet = new LinkedHashSet<>();
lHashSet.addAll(lList);
今並べましょう
lHashSet.stream().sorted((String s1,String s2)->{
return s1.compareTo(s2);
});
//now print it
System.out.println("----");
lHashSet.forEach(action->{
System.out.println(action);
});
System.out.println("----");
出力-
----
Ravi
Vijay
Ajay
null
----
ハッピーコーディング:)