1

要素の範囲を別のリストに置き換えて更新したい現在のリストがあります。たとえば、次のようになります。

現在のリスト:

a, b, c, d, e, f, g

新しいリスト:

x, y, z

次のようなことをしたいと思います。

CurrentList.setAll(5, NewList)

CurrentList次の値を持つように変換する必要があります。

a, b, c, d, e, x, y, z

f, gそのため、要素をx, yと余分な newaddedに置き換えました。CurrentListz

編集: これは常にリストの最後にあるとは限りません。そして、それは弦だけではありません。これは、任意のタイプの要素を持つリストに関するものです。これは、リストのどの部分でも機能する必要があります。たとえば、 を置き換える必要がある場合がありb, c, dます。私は単に開始インデックスを持っているだけで、要素をそれ以降に置き換え、リストがスペース不足の場合は、add置き換える代わりにリストする必要があります。

4

2 に答える 2

4

文字のコレクションがある場合は、 StringBuilder を使用することをお勧めします

StringBuilder sb = new StringBuilder("abcdefg");
sb.replace(5, sb.length(), "xyz");

できる要素のリストがある場合

List<String> list = ...
List<String> subList = list.subList(5, list.size());
subList.clear();
subList.addAll(Arrays.asList("x", "y", "z"));
于 2012-12-13T18:14:43.167 に答える
2

あなたが探しているのはこれです:

List<?> list = ...  // original list
List<?> toReplace = list.subList(startingIndex, endIndex);
toReplace.clear(); // clears the subList
List<?> replacement = ... // list of new elements
toReplace.addAll(replacement); // inserts the new elements in the original list, through the sublist

新しい要素を 1 つずつ追加することもできます。バッキング リストは、必要に応じてサイズが大きくなります。

于 2012-12-13T18:29:18.777 に答える