Конвертировать ArrayList, полученный из HashMap в массив - PullRequest
2 голосов
/ 30 сентября 2011

Как я могу это сделать?Когда я сохранял свои поля в HashMap, я делал это как простые объекты

HashMap map = new HashMap();

    map.put ("Autorul",numelePrenumeleAutorului);
    map.put ("Denumirea cartii",denumireaCartii);
    map.put ("Culoarea cartii",culoareaCartii);
    map.put ("Genul cartii",gen);
    map.put ("Limba",limba);
    map.put ("Numarul de copii",numarulDeCopii);
    map.put ("Numarul de pagini",numarulDePagini);
    map.put ("Pretul cartii",pretulCartii);

     ArrayList arl=new ArrayList();

     for (int i = 0;i<numarulDeCopii;i++) {

     arl.add(coeficientUzura[i]);
}
     map.put ("Coeficientii de Uzura",arl);

Я получаю доступ к значениям из HashMap (ищите последние строки)

Carte (String caleSpreFisier) {

HashMap map = new HashMap();

File file = new File(caleSpreFisier); 

try  {

FileInputStream f = new FileInputStream(file);  
ObjectInputStream s = new ObjectInputStream(f);  
map = (HashMap)s.readObject();         
s.close();

 } catch(Exception e){

           System.out.println("An exception has occured : "+e);     
    }

for (Object key :map.keySet()) {

    if (key.equals("Autorul")) {

        numelePrenumeleAutorului = (String)map.get(key);

    }

      if (key.equals("Denumirea cartii")) {

      denumireaCartii = (String) map.get(key);
    }

    if (key.equals("Culoarea cartii")) {

        culoareaCartii = (String)map.get(key);
    }


    if (key.equals("Genul cartii")) {

        gen = (String) map.get(key);

    }

    if (key.equals("Limba")) {

        limba = (String) map.get(key);

    }

    if (key.equals("Numarul de copii")) {

        numarulDeCopii = (Integer) map.get(key);

    }

    if (key.equals("Numarul de pagini")) {

        numarulDePagini = (Integer) map.get(key);

    }

    if (key.equals("Pretul cartii")) {

         pretulCartii = (Double) map.get(key);
    }

    if (key.equals("Coeficientii de Uzura")) {

        ArrayList temp = new ArrayList();


        Object me = map.get(key);

        System.out.println(me);

        //temp = (ArrayList) map.get(key);
    }   
}

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Во-первых: вы находитесь в объекте отказа . Ваш HashMap действительно должен быть правильным классом, который вы написали с реальными свойствами для хранения ваших различных полей.

Таким образом, вам также не нужно делать это уродливое отображение «имени свойства» в локальную переменную.

Далее: если то, что вы положили на карту, является ArrayList, то вы можете просто снова разыграть то, что вы получите, к этому типу:

ArrayList temp = (ArrayList) map.get(key);
0 голосов
/ 30 сентября 2011
Object[] array = ((ArrayList) map.get(key)).toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...