2012-02-11 13 views
1

私が間違っている場合は、私を修正してください。約java.util.List方法を読み取り、sublist(int fromIndex, int toIndex)をテストIは、次の検索結果 :構造(サブリストを呼び出した結果を修正すること、アレイによって支えられてArrayListを使用する場合ArrayListとLinkedListのjava.util.List subList(int、int)の動作

  • )はUnsupportedOperationExceptionをスロー。
  • LinkedListを使用しているときに、ノード間のリンクがあり、構造的に結果を変更してsublist()を呼び出すと、UnsupportedOperationExceptionが返されません。 ArrayListに要素を追加する追加されている位置の右からすべての要素をシフトし、これはLinkedListに元素を添加しながらsublist()境界の外側の配列に影響を与える操作であるであろうため、

はあり新しいノードを作成し、隣接ノードリンクを変更することによってのみリストにリンクすることを意味しますか?

+0

違いを示す短い自己完結型のコードスニペットを表示してください。 –

+1

'Arrays.asList'を意味しますか? –

答えて

1

ArrayListからsubList()を変更するとUnsupportedOperationExceptionをスローしません - 次は正常に動作します:

ArrayList list = new ArrayList(); 
    list.add("a"); 
    list.add("b"); 
    list.add("c"); 
    List sub = list.subList(1, 2); 
    sub.add("d"); 
+0

私はArrays.asListを使用していましたが、そこには混乱があります。乾杯 –

1

LinkedListと同じように、方法add(int index, E element)と、リストの途中で要素を追加ArrayListサポート。どちらの場合でも、サブリストの境界は影響を受けますが、それは問題ではありません。

関連する問題