我正在编写一个 Android 应用程序。我有一部分用户可以将位置添加到数组中。然后这个位置被用来存储历史(他们点击了按钮@时间@位置)。我现在需要计算他们在每个位置单击按钮的次数。
例如:
拱廊:1
公园:4
游泳池:0
到目前为止,我一直在尝试使用 HashSet 并创建一个二维数组,但似乎必须有更好的方法(而且我无论如何都无法使用这种方法)。干杯!
那这个呢:
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;
}
我认为您的问题描述得很糟糕,尤其是问题标题与问题描述不符。
如果您正在使用数组,并且您正在尝试确定一个数组中有多少条目在另一个数组中不存在:
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 中唯一元素的数量。