所以以前一定要问这个,但我找不到有用的东西,所以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个项目。
提前致谢:)
答案 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);