效率,资源 - 将所有数据存储在一个或多个ArrayList中

时间:2015-09-14 19:31:54

标签: android arraylist split resources

所以以前一定要问这个,但我找不到有用的东西,所以sry。

这是我的情景: 我想在ArrayList中存储有关Items,它们的价格和其他值的信息。假设我们完成后列表中有大约10,000个项目。我的问题是,什么方式是紧固/什么需要更少的资源系统,以便应用程序运行最有效。

我应该: 对所有数据使用一个ArrayList像这样

ArrayList<String> items = new ArrayList<String>();
items.add("name;price;from");

String[] seperated = items.get(i).split(";");
seperated[0]...

然后每当我需要从中读取它时必须拆分它。 (每次客户搜索项目时,我都可以只拆分符合搜索条件的条目)

或者我应该使用3个ArrayLists,每个都有10.000个项目。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

更快的解析 - 多个阵列 使用的内存更少 - 单个阵列。

这取决于您对阵列的期望值。一种正确的方法是只加载所需数量的物品。例如。如果在屏幕上看到10个项目,则加载30并且(un)在删除/请求时加载更多项目。

答案 1 :(得分:0)

我不是100%明确你的规范,但如果是我,我会实现一个Item对象:

class Item {
    private String _id;
    private String _name;
    private String _price;
    private String _from;

    //getters,setters,etc.
}

然后让HashMap按ID查找Item

HashMap<String,Item> items = new HashMap<>();

您可以通过以下方式获取所有商品的清单:

items.values();

或者,您可以通过ID:

执行O(1)查找
items.get(someId);