Avatar billede touel Nybegynder
10. december 2008 - 02:39 Der er 6 kommentarer og
1 løsning

Får ArrayStoreException

Har en metode som returnerer:

størrelse på funkt: [[2], [3], [4]]

dvs. som List. Jeg har prøvet at caste hver værdi til Double vha.

Double [] x = (Double[])xam.toArray(new Double[xam.size()]);

(xam indeholder de nævnte værdier foroven), men får

ArrayStoreException. Hva gør jeg galt ?
Avatar billede arne_v Ekspert
10. december 2008 - 03:11 #1
Hvis jeg skulle gætte så har du ikke en liste af double men en liste af liste af Double.

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

public class ListCast {
    public static void main(String[] args) {
        List<Double> dl = new ArrayList<Double>();
        dl.add(1.2);
        dl.add(3.4);
        dl.add(5.6);
        System.out.println(dl);
        Double[] da = (Double[])dl.toArray(new Double[dl.size()]);
        for(double d : da) {
            System.out.println(d);
        }
        List<List<Double>> dll = new ArrayList<List<Double>>();
        dll.add(new ArrayList<Double>());
        dll.add(new ArrayList<Double>());
        dll.add(new ArrayList<Double>());
        dll.get(0).add(1.2);
        dll.get(1).add(3.4);
        dll.get(2).add(5.6);
        System.out.println(dll);
        for(List<Double> l : dll) {
            System.out.println(l.get(0));
        }
    }
}

udskriver:

[1.2, 3.4, 5.6]
1.2
3.4
5.6
[[1.2], [3.4], [5.6]]
1.2
3.4
5.6
Avatar billede schwarz84 Nybegynder
10. december 2008 - 10:30 #2
Når du gemmer en primitiv double i en liste, så laves den autmatisk om til et Doble wrapper objekt:
List<Double> ds = new ArrayList<Double>();
double d = 42.0;
ds.add(d); //<-- Her konverteres d til Double
Avatar billede touel Nybegynder
10. december 2008 - 19:03 #3
jeg bruger følgende metode:

public  List getFejl(){
       
        List res = new ArrayList();
        dbHelper help = new dbHelper();
        database db = new database();
        Integer [] da= new Integer[0];
       
        for(int i=0;i<help.fejl0.size();i++)
        {
            res.add(Arrays.asList(new Double[] { new Double(help.fejl0.get(i).toString()) }));
        }   
        for(int i=0;i<help.fejl1.size();i++)
        {
            res.add(Arrays.asList(new Double[] { new Double(help.fejl1.get(i).toString()) }));
        }
        for(int i=0;i<help.fejl2.size();i++)
        {
            res.add(Arrays.asList(new Double[] { new Double(help.fejl2.get(i).toString()) }));
        }
        for(int i=0;i<help.fejl3.size();i++)           
        {
            res.add(Arrays.asList(new Double[] { new Double(help.fejl3.get(i).toString()) }));
        }
       
        System.out.println(help.fejl+" Til sidst.");
        System.out.println("Bruger lig med: " + db.bruger);
       
   
        return res;
    }

Det må være den som gør at jeg komme til at oprette array i array ????
Avatar billede touel Nybegynder
10. december 2008 - 21:25 #4
hvordan caster jeg fra ArrayList til double [ ], uden brug af generics....

Nu hvor vi er ved det, hvordan opdaterer man op til java 5.0 så jeg kan bruge generics ?
Avatar billede touel Nybegynder
10. december 2008 - 22:12 #5
har fundet ud af hvordan jeg caster den... I må begge gerne lægge svar
Avatar billede arne_v Ekspert
11. december 2008 - 00:55 #6
svar
Avatar billede arne_v Ekspert
11. december 2008 - 00:57 #7
PS: Jeg gætter på at du kan skifte fra liste af liste til kun liste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester