2012-09-21 10 views
6

私はこのようにjavaにdouble ArrayListを持っています。ArrayListで複数の値を単一のインデックスに追加する

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

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

ゼロ番目のインデックスは、インデックス1が値

{50,35,25,45,65}と、これらの値のすべてがオーダー以下にダブル配列に格納されているを持っているでしょう値{100,100,100,100,100} を持っているでしょう

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

私はそれをどのように行うことができますか?

+0

まず、マルチレベル配列を作成することが目標ですか、それともArrayListの目的に違反していますか?前者の場合、 'ArrayList 'を持つことができます。後者の場合は、ここでリストを使用する理由を再検討する必要があります。 – Vulcan

+0

私はリストを使用する必要があります。なぜなら、私はそれをAChartENGINEに渡してGRAPHを描画する必要があるからです。あなたはarraylistでそれを行う方法を教えてもらえます:) –

答えて

7

@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); 

あなたは何をしたいのですか?あなたはarrObjListArrayListとして多くを持つことができ (私はそうでなければ、for文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]); 
} 
+0

peoblemは私にこれらのハードコード値を持っていません私の二倍体[]配列。 –

+1

私は自分の答えを更新しました。 – yahya

+0

あなたのお手伝いをしてください。私はそれを働かせました。私のソリューションはあなたのものに似ていました:) –

1

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

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); 

:あなたはこのような何かを試すことができます。これがあなたに役立つことを願っています。

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]); 
      } 
     } 
    } 
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"}; 

を作成し、これを追加することができますメソッドをあなたのリストに追加します。

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()); 
} 
} 
} 
+0

あなたが与えた素敵な例 –

0

特定のインデックスのすべての値を参照しているオブジェクトを渡すことができます。その上

a.get(0).p1; 

a.get(0).p2; 

a.get(0).p3;............. 

と:

import java.util.ArrayList; 

public class HelloWorld{ 

public static void main(String []args){ 


ArrayList<connect> a=new ArrayList<connect>(); 

a.add(new connect(100,100,100,100,100)); 

System.out.println(a.get(0).p1); 

System.out.println(a.get(0).p2); 

System.out.println(a.get(0).p3); 
} 

} 

class connect 
{ 
int p1,p2,p3,p4,p5; 

connect(int a,int b,int c,int d,int e) 
{ 

this.p1=a; 

this.p2=b; 

this.p3=c; 

this.p4=d; 

this.p5=e; 
} 

} 

後に特定のインデックスで特定の値を取得するには、あなたがこれを行うことができます。

+0

それはコンパイルすることをチェックしましたか? –

+0

私は完全なコードを書いていませんが、ArrayList宣言は別のクラスにあるmain()にあります。 –

+0

メソッド 'connect'には戻り値の型がありません。それはコンパイルされますか?何も返さない場合は、署名に 'void 'を追加する必要があります。また、慣例により、Javaクラスは大文字で始まります。 –

関連する問題