将从 HashMap 获取的 ArrayList 转换为 Array

发布于 2024-12-07 02:46:15 字数 2041 浏览 1 评论 0原文

我该怎么做? 当我将字段存储在 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);
    }   
}

How can i do this ?
When i stored my fields in HashMap , i did it like simple Objects

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

I access values from HashMap (look for the last lines)

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

殊姿 2024-12-14 02:46:15
Object[] array = ((ArrayList) map.get(key)).toArray();
Object[] array = ((ArrayList) map.get(key)).toArray();
酒儿 2024-12-14 02:46:15

首先:您处于对象拒绝。您的 HashMap 实际上应该是一个正确的类,您使用实际属性编写来保存不同的字段。

这样,您也不必进行丑陋的“属性名称”到局​​部变量的映射。

接下来:如果您放入映射中的内容是 ArrayList,那么您可以再次将获得的内容转换为该类型:

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

First of: you're in object denial. Your HashMap should really be a proper class that you wrote with the real properties to hold your different fields.

That way you also don't have to do that ugly "name of the property"-to-local-variable mapping.

Next: if what you put into the map is an ArrayList, then you can just cast what you get out to that type again:

ArrayList temp = (ArrayList) map.get(key);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文