2016-12-05 6 views
-1

いくつかのオプションがありますが、どちらが標準であるかわかりません。範囲<T>をリスト<T>に変換する正式な方法は何ですか?

  • 手動下から上限
  • ContiguousSet
  • に何かを繰り返しますか?
+0

@PatrickParker Googleのコレクションライブラリにあります – Andrew

+1

あなたがGuavaの世界にいて、範囲に定義されたドメインがある場合、ContiguousSetは行く方法と思われます...あなたが "カノニカル " –

答えて

3

これは簡単ではありませんが、もちろん可能です。ただ、例えば、ImmutableSortedSetあるContiguousSet<T>、および使用方法asList()を作成: 前者はactualy各要素が格納されていないので、あなたが、(リストビューを使用して対)ContiguousSetに固執することをお勧めします

Range<Integer> range = Range.closed(1, 5); 
ContiguousSet<Integer> ourIntegers = ContiguousSet.create(range, DiscreteDomain.integers()); 
ImmutableList<Integer> ourIntegersList = ourIntegers.asList(); 
System.out.println(ourIntegers); // [1‥5] 
System.out.println(ourIntegersList); // [1, 2, 3, 4, 5] 

注意をメモリには、後者は、大きな範囲の問題となることができます。

関連する問題