9

我有一个ArrayList像这样的java中的double。

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

现在我要做的是通过循环在列表的零索引中添加 5 个值,在索引 1 中添加 5 个值。

第零个索引将具有值{100,100,100,100,100} 索引 1 将具有值{50,35,25,45,65}

并且所有这些值都按以下顺序存储在双精度数组中

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

我该怎么做?

4

7 回答 7

8

@Ahamed 有一点,但是如果您坚持使用列表,那么您可以拥有三个这样的数组列表:

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

你想做的就是把它们结合起来,对吧?您可以尝试这样的事情:(我假设两个数组的大小相同,否则您需要使用两个 for 语句)

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

您可以ArrayListarrObjList. 我希望这能帮到您。

于 2012-09-21T05:07:05.967 回答
3

怎么样

  1. 首先将您想要的结果添加为 arraylist 和
  2. 并根据需要转换为双数组。

试试这样。。

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

为您创建简单的方法:

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

改用二维数组。例如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 回答
0

您可以传递一个引用特定索引处所有值的对象。

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

}

稍后要在特定索引处获取特定值,您可以执行以下操作:

a.get(0).p1;

a.get(0).p2;

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

等等。

于 2017-05-17T02:06:30.977 回答