我正在写一个Android应用程序。我有一部分用户可以将位置添加到数组。这个位置然后用来存储历史(他们点击按钮@时间@位置)。现在我需要计算他们在每个位置点击了多少次按钮。比较2个阵列与计数的唯一条目
例:
商场:1
公园:4
游泳池:0
到目前为止,我一直在试图用一个HashSet &创建一个二维数组,但它似乎必须有一个更好的方式(我无法反正这种方式工作)。干杯!
我正在写一个Android应用程序。我有一部分用户可以将位置添加到数组。这个位置然后用来存储历史(他们点击按钮@时间@位置)。现在我需要计算他们在每个位置点击了多少次按钮。比较2个阵列与计数的唯一条目
例:
商场:1
公园:4
游泳池:0
到目前为止,我一直在试图用一个HashSet &创建一个二维数组,但它似乎必须有一个更好的方式(我无法反正这种方式工作)。干杯!
您的问题描述得非常糟糕,特别是问题标题与问题描述不符,我想。
如果您正在使用数组,而你正试图确定有多少项在一个阵列中的另一个不存在:
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中唯一元素的数量。
这个怎么样:
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;
}
感谢您分享此信息,很多时候我只是需要一个例子来弄清楚。看起来好像我可以通过你的代码找出它。你真棒! – SuperNub2TheRescue 2013-02-23 22:24:28
对不起,如果这真的是'不好意思',但名称是指什么?正如方法getHistoryData(字符串**姓名**){ – SuperNub2TheRescue 2013-02-23 22:50:24
'name'是你的组件,其记录你正在试图保持的名称。例如'getHistoryData(“Arcade”);''updateClickCount(“Park”);'等 – 2013-02-25 07:36:18
*什么*你不能去上班?你有错误吗?堆栈痕迹?你得到了什么产出,你期望什么?你为此写了什么代码? – Makoto 2013-02-23 21:50:46
'Map'是要走的路。 –
jlordo
2013-02-23 21:51:01
你可以在你的'Location'类'counter'属性和1,当用户点击它添加。如果你只有'Location'标题自动取款机,你可以有一个'地图<字符串,位置>'由'HashMap'备份(因为你不需要为了也不排序元素)使用'Location'标题键。 – 2013-02-23 21:53:10