私のリストがA、B、C、X = 3を読んでいる場合は特にXでそれらを複製できるようにidのリストを持っています。 A、A、B、B、B、C、C、C iveはループを使ってこれをやろうとしましたが、リストのサイズが常に大きくなり、リストが成長し続けると、助けて?どのようにJavaのリスト内の項目を複製する
答えて
が、それはおそらく見てではなく、何をするかの説明を聞くことによって学ぶことは簡単ですので、ここでいくつかの簡単な作業コードです:
public List<Date> repeat(List<Date> dates, int times)
{
List<Date> results = new ArrayList<>();
for (Date d : dates)
{
for (int i = 0; i < times; ++i)
results.add(d.clone());
}
return results;
}
我々入力リストを反復して構築した新しい "results"リストを作成します - 入力リストの各項目について、その項目を結果リストに何回か追加します。これにより、同じリスト内でアイテムを複製しようとするよりもアルゴリズムがずっと簡単になります!
毎回日付を複製することに注意してください。そうでなければ、すべて同じ実際のDate
オブジェクトを指す要素のシーケンスを含むリストになります。ほとんどの場合理想的ではありません。
あなたは、この方法は、より再利用可能にするためにジェネリック医薬品を使用することができます - 理想的に、私たちは、これはすべてのCloneable
のオブジェクトだけでなく、Date
のために働くしたいと思います:
public static <T extends Cloneable> List<T> repeat(List<T> in, int times)
{
List<T> results = new ArrayList<>();
for (T x : in)
{
for (int i = 0; i < times; ++i)
results.add(x);
}
return results;
}
これはすごく感謝しています。元のリストにある – martinseal1987
@ martinseal1987正確には、["インプレース"](https://en.wikipedia.org/wiki/In-place_algorithm)で簡単に行うことのできるアルゴリズムがあります。それら。 – hnefatl
私はこのコンピュータにJava IDEを持っていないので、C#で解決策を書いたが、Javaとは異なる唯一の髪型だ。ロジック(とほとんどのコード)は同じです。これを試してみてください:このような何かのために
public static List<string> createList(List<string>originalList, int x)
{
List<string> newList = new List<string>();
foreach(string s in originalList)
{
for(int i=0; i<x; i++)
{
newList.Add(s);
}
}
return newList;
}
これはうまくいくように見えますが、以下の解決策にポイントを付けるつもりです。迅速な返信のために多くの感謝を申し上げます。 – martinseal1987
追加するにはリンクされたリストが必要です。このプログラムを使用して機能を実現します。
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList<String> al=new LinkedList<>();
al.add("A");
al.add("B");
al.add("C");
modify(al,4);
System.out.println(al);
}
private static void modify(LinkedList<String> al, int X) {
int size=al.size();
for(int j=0;j<size;j++)
{
for(int i=1;i<X;i++)
{
al.add(X*j, al.get(X*j));
}
}
}
}
'LinkedList'は必要ありません。このアプローチを使用しているときにはどのリストも行いますが、' LinkedList'にはあなたが言及していない利点が1つあります。また、いくつかの説明を加えたいかもしれません。 'al.add(X * j、al.get(X * j))'のような行はすぐには分かりません。最後に、コードをクリアすることは良い考えです。ブレーススタイルを混ぜて、ランダムなコメントを付けます。 – hnefatl
私の友人、私は彼が同じリストの変更を望んでいたので、リンクされたリストを使用しましたが、新しいリストを求めませんでした。間に挿入すると、リンクされたリストでは常に推奨され、他のリストでは表示されません。私の目的は、同じリストを使用して結果を達成することでした。理由が分からない場合は投票を中止してください。 –
- 1. リストの項目をリスト内包で複数回複製する
- 2. 複製リストの項目をn回
- 3. リスト内の項目の位置を複製してランダム化する
- 4. RecyclerView複製項目
- 5. どのようにsurfaceListBox内の複数の項目の選択をカスタマイズする
- 6. Pythonでリスト内の複数の項目にアクセスするには?
- 7. onPrepareOptionsMenu ActionBar内の項目を複製します
- 8. リスト内の項目のPreg_match
- 9. Pythonの:リスト内の重複する項目を削除
- 10. 他のリストの重複した項目を使って項目内のリストを削除する
- 11. どのように要約することにより、アレイ内のグループ項目を各項目
- 12. リスト内の複数のリスト内の項目を確認してください
- 13. WordpressのCSSメニューの複製 - メニュー項目とドロップダウンの項目が右に移動
- 14. Netbeansの:Javaのスイング:どのように私はJComboBoxの項目
- 15. 複数のリストを持つページ内のリスト項目をスクロールする方法
- 16. リスト項目+フィールドデータソース内
- 17. Django Haystack:リスト内の複数の項目に基づくフィルタクエリ。
- 18. リスト内の特定の項目にスクロールし、リスト内の次の特定の項目にスクロールします。
- 19. リスト内の項目が文字列内にあるかどうかPython 2.7
- 20. リスト内のリストに項目を挿入する
- 21. リスト内の項目のプロパティを取得
- 22. 別のリストのリスト内の項目を参照するPython
- 23. リスト内の項目に必要なメモリ
- 24. 複数の項目をテキスト項目に重複項目を追加する
- 25. リスト内のすべての項目にcharを追加するにはどうすればよいですか?
- 26. リスト内の項目を別のリストの項目に再帰的に置換する
- 27. リストボックスの項目をCのリストボックスの次の行に複製しないようにするには
- 28. Javascriptの項目を削除せずに配列内の重複項目をユニークな項目に変換する
- 29. リスト内の各項目の後に改行を追加するにはどうすればよいですか?
- 30. リスト内のグループ内の最初の項目のみを表示するようにxsl 1.0を取得する
開始リストを変更しないで、結果として新しいリストを作成する必要があるように思えます。 – hnefatl
新しいアイテムを作成します。新しいアイテムは、アイテムごとにX回になります。次に、そのリストを返すか古いものを消去し、その内容を新しいリストに置き換えます。 – Pshemo