0

範囲を指定して Java セットを反復処理したいと考えています。私はリストのためにそれを行うことができるように..

//for list
int startRange=3;
int endRange = 5; 
List list = myList();
for (int i=startRange;i<endRange;i++){
    System.out.println(list.get(i));
}

ここで、startRange と endRange で上記のように設定された以下の Java を反復処理したいと考えました。

Set<String> set = new java.util.HashSet<String>(list);

ありがとう。

4

5 に答える 5

3
int count =0, min= 3 , max = 5;
Set<String> s = new HashSet<String>();

Iterator<String> itr  = s.iterator();

while (itr.hasNext()) {
    if ( count > min && count < max ) {
        //Do something
    }
    count++;
}
于 2012-09-16T05:52:45.217 に答える
2

を使用LinkedHashSetして順序を維持できます。

于 2012-09-16T06:01:11.127 に答える
0
//You can change the Set to Array and then iterate over a range.

Set<Integer> set = new TreeSet<Integer>();
for (int i = 0; i <= 100; i++) {
         set.add(i);
    }
Object[] array = set.toArray();


for (Integer i = 0; i < 100; i++) {
        System.out.print(array[i] + " ,");
    }
于 2013-08-21T10:32:28.663 に答える
0

以下の私のコメントを参照してください。

@アルファシンは正しいです。Listその要素の完全な順序付けを含みますが、そのHashSetようなものはありません... PSList.listIterator元のコードで使用する必要があります。

そうは言っても、全順序を課す 他の種類のSets にもSortedSetたようなものがあります -- s. subSet同様の機能を持つ類似のheadSetとが存在しtailSetます。これらは、、 などNavigableSetの他のメソッドとともに存在します。ceilingfloor

ここでの注文はそれほど似ていないことに注意してください。List順序は、ユーザーが意図したものに関係なく、本質的に任意ですが、SortedSets の順序は比較ソートを使用します。

于 2012-09-16T05:57:00.893 に答える
0

セットはクラス LinkedHashSetを使用して順序付けされていません

于 2012-09-16T06:00:13.560 に答える