9

ArrayList私はこのようなJavaでダブルを持っています。

List<double[]> values = new ArrayList<double[]>(2);

今私がやりたいことは、リストのゼロ インデックスに 5 つの値を追加し、ループを通じてインデックス 1 に 5 つの値を追加することです。

0 番目{100,100,100,100,100} のインデックスには値が含まれます インデックス 1 には値が含まれます{50,35,25,45,65}

これらの値はすべて次の順序で double 配列に格納されます

double[] values = {100,50,100,35,100,25,100,45,100,65}

どうすればできますか?

4

7 に答える 7

8

@Ahamedにはポイントがありますが、リストの使用を主張している場合は、次のように3つのarraylistを使用できます。

ArrayList<Integer> first = new ArrayList<Integer>(Arrays.AsList(100,100,100,100,100));
ArrayList<Integer> second = new ArrayList<Integer>(Arrays.AsList(50,35,25,45,65));
ArrayList<Integer> third = new ArrayList<Integer>();

for(int i = 0; i < first.size(); i++) {
      third.add(first.get(i));
      third.add(second.get(i));
}

編集: 以下のリストにそれらの値がある場合:

List<double[]> values = new ArrayList<double[]>(2);

あなたがしたいのはそれらを組み合わせることですよね?次のようなことを試すことができます:(両方の配列が同じサイズであると仮定します。そうでない場合は、ステートメントに2つ使用する必要があります)

ArrayList<Double> yourArray = new ArrayList<Double>();
for(int i = 0; i < values.get(0).length; i++) {
    yourArray.add(values.get(0)[i]);
    yourArray.add(values.get(1)[i]);
}
于 2012-09-21T05:03:15.703 に答える
3

どうですか

  1. まず、目的の結果をarraylistとして追加し、
  2. 必要に応じてdouble配列に変換します。

このようにしてみてください。

import java.util.ArrayList;
import java.util.List;

    public class ArrayTest {

        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub

            // Your Prepared data. 
            List<double[]> values = new ArrayList<double[]>(2);

            double[] element1 = new double[] { 100, 100, 100, 100, 100 };
            double[] element2 = new double[] { 50, 35, 25, 45, 65 };

            values.add(element1);
            values.add(element2);

            // Add the result to arraylist.
            List<Double> temp = new ArrayList<Double>();
            for(int j=0;j<values.size(); j++) {
                for (int i = 0; i < values.get(0).length; i++) {
                    temp.add(values.get(0)[i]);
                    temp.add(values.get(1)[i]);
                }
            }

            // Convert arraylist to int[].
            Double[] result = temp.toArray(new Double[temp.size()]);
            double[] finalResult = new double[result.length]; // This hold final result.
            for (int i = 0; i < result.length; i++) {
                finalResult[i] = result[i].doubleValue();
            }

            for (int i = 0; i < finalResult.length; i++) {
                System.out.println(finalResult[i]);
            }
        }
    }
于 2012-09-21T05:48:51.963 に答える
3
ArrayList<ArrayList> arrObjList = new ArrayList<ArrayList>();
ArrayList<Double> arrObjInner1= new ArrayList<Double>();
arrObjInner1.add(100);
arrObjInner1.add(100);
arrObjInner1.add(100);
arrObjInner1.add(100);

arrObjList.add(arrObjInner1);

ArrayListの中にいくつでも入れることができますarrObjList。これがお役に立てば幸いです。

于 2012-09-21T05:07:05.967 に答える
3

あなたのためにそれを行う簡単な方法を作成してください:

public void addMulti(String[] strings,List list){
    for (int i = 0; i < strings.length; i++) {
        list.add(strings[i]);
    }
}

次に、作成できます

String[] wrong ={"1","2","3","4","5","6"};

このメソッドを使用してリストに追加します。

于 2013-06-17T18:52:04.443 に答える
1

代わりに2次元配列を使用してください。たとえば、int values[][] = new int[2][5];あまり操作していないときは、配列の方が高速です。

于 2012-09-21T04:58:17.797 に答える
0
import java.util.*;
public class HelloWorld{

 public static void main(String []args){
  List<String> threadSafeList = new ArrayList<String>();
    threadSafeList.add("A");
    threadSafeList.add("D");
    threadSafeList.add("F");

Set<String> threadSafeList1 = new TreeSet<String>();
    threadSafeList1.add("B");
    threadSafeList1.add("C");
    threadSafeList1.add("E");
    threadSafeList1.addAll(threadSafeList);


 List mainList = new ArrayList();   
 mainList.addAll(Arrays.asList(threadSafeList1));
 Iterator<String> mainList1 = mainList.iterator();
 while(mainList1.hasNext()){
 System.out.printf("total : %s %n", mainList1.next());
 }
}
}
于 2014-08-07T10:30:45.543 に答える