首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayList与HashMap与ArrayList与类

ArrayList与HashMap与ArrayList与类
EN

Stack Overflow用户
提问于 2014-07-30 09:07:47
回答 3查看 128关注 0票数 0

我想使用一些来自ArrayList的数据集。我有2种在ArrayList中存储数据的方法。

第一种方法:

代码语言:javascript
复制
private ArrayList<HashMap<String, String>> showList = new ArrayList<HashMap<String, String>>();

以及HashMap结构在哪里

代码语言:javascript
复制
 HashMap<String, String> map = new HashMap<String, String>();
 map.put("title","Mytitle");
 map.put("Description", "MyDescription for show");

第二种方法:

代码语言:javascript
复制
private ArrayList<DataProvider> showList = new ArrayList<DataProvider>();

而DataProvider是

代码语言:javascript
复制
public class DataProvider{
public String title = "";
public String description = "";

public void setTitle(String mTit){
    title = mTit;
}

public void setDescription(String mDec){
    description = mDec;
}public String getTitle(){
    return title ;
}public String getDescription(){
    return description;
}

我知道如何存储和检索数据表单ArrayList。我想知道哪一个能更好地执行更快的

EN

回答 3

Stack Overflow用户

发布于 2014-07-30 09:17:01

如果您的数据有一组常量字段,那么很明显,DataProvider方法更快,因为从Map获取对象(尽管速度相当快)需要进行一些搜索。对于第二个尺寸的地图来说,这是相当微不足道的。Map方法还将使用更多的内存(在Map实现中分配其他对象和字段)

但是,如果您有一些对象,例如商店中的产品,您可能有一组不同的属性,就像某些产品可能有颜色,有些奇怪,这是Map可能有用的地方。

您还可以考虑使用List的不同实现,这取决于大多数情况下您想要对列表做什么(大量插入/删除/或仅仅通过对象在列表中的位置获取对象)。

票数 1
EN

Stack Overflow用户

发布于 2014-07-30 09:19:59

第二种方法最好是第一种.For更清晰,您可以参考

地图接口

列表接口集接口

我觉得这会对你有帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-07-30 09:31:57

实际上是SPEED,我去掉了时差-

代码语言:javascript
复制
public class Test
{

    private static ArrayList<HashMap<String, String>> showList1 = new ArrayList<HashMap<String, String>>();
    private static ArrayList<DataProvider> showList2 = new ArrayList<DataProvider>();

  public static void main(String args[]) throws Exception
  {

      Date a1=new Date();


      HashMap<String, String> map = new HashMap<String, String>();
      map.put("title","Mytitle");
      map.put("Description", "MyDescription for show");

      showList1.add(map);

      Date a2=new Date();

      System.out.println(a2.getTime()-a1.getTime());


      Date b1=new Date();
      DataProvider dataProvider=new DataProvider();
      dataProvider.setTitle("Mytitle");
      dataProvider.setDescription("MyDescription for show");
      showList2.add(dataProvider);

      Date b2=new Date();

      System.out.println(b2.getTime()-b1.getTime());
    }
}

class DataProvider{

    public String title = "";
    public String description = "";

    public void setTitle(String mTit){
        title = mTit;
    }
    public void setDescription(String mDec){
        description = mDec;
    }

    public String getTitle(){
        return title ;
    }
    public String getDescription(){
        return description;
    }
}

产出-

代码语言:javascript
复制
0
0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25032813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档