2016-03-20 14 views
1

ファイルから整数を読み込んでSetにするためのアプリケーションを作成しましたが、入力ファイル番号のときに質問があります-5 5 2 8 9 1 4 55 70、それは数をこのように設定する - [1,2,4,5,70,55、8,9]、なぜこれのようなものですか?私はそれが二重性を避けることを望む - これはOKですが、私は最初の方法で数字を保存したいです。Javaで整数からファイルを読み書きする

Set<Integer> zoznam = new HashSet(); 
    int index = 0; 
    FileReader fr; 
    fr = new FileReader(fileName); 
    String line; 
    BufferedReader br = new BufferedReader(fr); 
    int i = 0; 

    while ((line = br.readLine()) != null) { 

     System.out.println(line); 
     String[] items = line.split(" "); 
     int[] c = new int[items.length]; 
     for (int q = 0; q < items.length; q++) { 
      c[q] = Integer.parseInt(items[q]); 
      zoznam.add(c[q]); 
     } 
    } 
    return zoznam; 
} 

答えて

1

Setは、通常、いかなる発注も保証しません。特殊な実装(たとえば、LinkedHashSet)を使用する必要がある注文を維持する場合は、挿入順序が保持されます。

+0

ありがとうございます。それは私の多くを助けた – Patrikz64

+0

または 'TreeSet'、いいえ? –

+0

@DebosmitRay 'TreeSet'は' SortedSet'です。挿入されたアイテムをソートし、自然順序付けに従って表示します。 OP(5 5 2 8 9 1 4 55 70)によって与えられた入力に対して、出力は1 2 4 5 8 9 55 70になります。反対に、 'LinkedHashSet'は、挿入の順序を保持します。 – Mureinik

関連する問題