web-dev-qa-db-fra.com

Ajout de plusieurs valeurs dans ArrayList à un seul index

J'ai un double ArrayList en Java comme celui-ci.

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

Maintenant, ce que je veux faire est d’ajouter 5 valeurs dans l’indice zéro de la liste et 5 valeurs dans l’index un à la boucle.

L'index zéro aurait les valeurs {100,100,100,100,100} L'indice 1 aurait les valeurs {50,35,25,45,65}

et toutes ces valeurs sont stockées dans un tableau double dans l'ordre suivant

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

Comment puis-je le faire?

7
Fahad Abid Janjua

@Ahamed a un point, mais si vous insistez pour utiliser des listes afin que vous puissiez avoir trois listes comme ceci:

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

Edit: Si vous avez ces valeurs sur votre liste, celles-ci:

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

ce que vous voulez faire est de les combiner, non? Vous pouvez essayer quelque chose comme ceci: (Je suppose que les deux tableaux ont la même taille, sinon vous devez en utiliser deux pour l'instruction)

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

Vous pouvez avoir autant de ArrayList dans arrObjList. J'espère que cela t'aidera.

3
Meher

créer une méthode simple pour le faire pour vous:

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

Ensuite, vous pouvez créer

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

et ajoutez-le avec cette méthode à votre liste. 

3
Jesus Dimrix

Que diriez-vous 

  1. Premièrement, ajoutez le résultat souhaité en tant qu'artiste et
  2. et convertir en double tableau que vous voulez.

Essayez comme ça ..

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
swemon

Utilisez plutôt un tableau à deux dimensions. Par exemple, int values[][] = new int[2][5]; Les tableaux sont plus rapides lorsque vous ne manipulez pas beaucoup.

1
Ahamed

Vous pouvez passer un objet qui fait référence à toutes les valeurs d'un index particulier.

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

}

Pour obtenir ultérieurement une valeur particulière à un index spécifique, procédez comme suit:

a.get(0).p1;

a.get(0).p2;

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

etc.

0
Pulkit Kedia
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
Mayank Tiwari