0

我有一个名为 objectOne 的对象,它的每一行都包含 3 个变量(String var1、String var2、int var3)。所以对于每一行,数据应该是var1;var2;var3

我的问题是如何根据其对象及其变量来计算频率?因为类似代码int occurrences = Collections.frequency(list, item);无法获取特定对象中变量的出现次数。

例如我有

objectOne :
is;is;125
that;is;861
you;are;90
that;is;469

我想得到isvar2 列中出现了多少单词(答案应该是 3)以及 var1 列中出现了多少that单词(答案应该是 2)?

任何帮助将不胜感激 :)

4

2 回答 2

1

我将在类中实现自己查找频率的逻辑,因为现有 Collection 框架中没有为此目的存在的直接 API。

public int findOccurances(Collection list, String column,String item) {
    int count = 0;
ObjectOne myObj;
String value="";
Iterator itr = list.iterator();
while(itr.hasNext()) {
        myObj = (ObjectOne)itr.next();
    if(column.equalsIgnoreCase("col1")) value = myObj.getCol1();
    if(column.equalsIgnoreCase("col2")) value = myObj.getCol2();
    if(value.equalsIgnoreCase(item)) {
       count++;
    }
}
return count;
}

希望这会有所帮助,并为改进带来一些启发。

于 2013-03-31T04:21:17.430 回答
0

将数据元素包装在具有计数和值的节点中。在插入时,如果不存在则创建一个新的并将计数设置为 1,或者如果它已经存在则增加计数。然后只需要检查节点计数而不是计算节点计数。

于 2013-03-31T11:38:26.033 回答