stakowerflol:
私は.CSVの最初の行はLinkedHashSetのの最初の要素でなければなりませんので、自然な順序でLinkedHashSetのに.CSV保存したいです。
このようなファイルを見て:
java
c
c++
assembly language
swift
そして、このように私のコード:
public class test {
public static void main(String[] args) throws IOException {
final Charset ENCODING = Charset.forName("Cp1250");
Path fileToLoad = Paths.get("src/main/resources/test.csv");
Set<String> x = Files.lines(fileToLoad, ENCODING)
.map(Function.identity())
.collect(Collectors.toSet());
Iterator<String> it = x.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
しかし、それは間違った順序を返します。
assembly language
c++
java
c
swift
私は、そのストリームがちょうどHashSetのようにそれを保存だと思います。
それはストリームとLinkedHashSetのようにそれを保存することは可能ですか?
GhostCat敬礼モニカC.:
あなたは、単にそのファクトリメソッドによって作成された特定のタイプを(それは知りませんが保証返すように設定し、他には何を)。
唯一確実な方法は、実際にすることで制御してストリーム動作を終了することで、何が起こりますか
... collect( Collectors.toCollection( LinkedHashSet::new ) );