我正在编写一个Android应用程序。我有一个用户可以在阵列中添加位置的部分。然后,此位置用于存储历史记录(他们点击按钮@ time @ location)。我现在需要计算他们在每个位置点击按钮的次数。
例如:
拱廊:1
公园:4
游泳池:0
到目前为止,我一直在尝试使用HashSet&创建一个二维数组,但似乎必须有一个更好的方法(我无法通过这种方式工作)。干杯!
答案 0 :(得分:0)
听起来像是HashMap
,或者,如果您想使用Google Guava
库,MultiSet
会满足您的需求。
从以上链接:
Guava提供了一种新的集合类型Multiset,它支持添加多个元素,并计算每个元素的出现次数。 multiset包含的元素。值得注意的是,Multiset不支持 负元素计数,也不是Integer.MAX_VALUE以上的元素计数。
答案 1 :(得分:0)
我的问题描述得非常糟糕,特别是问题标题与问题描述不符,我想。
如果您正在使用数组,并且您正在尝试确定一个数组中有多少条目不存在于另一个数组中:
List<Integer> aList = Arrays.asList(a);
List<Integer> bList = Arrays.asList(b);
int countBefore = aList.size();
aList.retainsAll(bList);
int uniqueCount = countBefore - aList.size();
aList现在只包含同样位于bList中的元素,因此比较前后的长度会给出bList中唯一元素的数量。
答案 2 :(得分:0)
这个怎么样:
private Map<String, HistoryData> historyMap = new HashMap<String, HistoryData>();
private class HistoryData {
int count;
List<String> locations = new ArrayList<String>();
}
private void updateClickCount(String name){
HistoryData data = getHistoryData(name);
data.count++;
}
private void addLocatioon(String name, String location){
HistoryData data = getHistoryData(name);
data.locations.add(location);
}
private HistoryData getHistoryData(String name){
HistoryData data = historyMap.get(name);
if(data == null){
data = new HistoryData();
historyMap.put(name, data);
}
return data;
}