Java 计算向量出现次数
我有两个列表包含类似的内容:Java 计算向量出现次数,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我有两个列表包含类似的内容: List1 List2 name.txt 145 name.txt 132 else.txt 145 name.txt 145 else.txt 145 我需要计算list1中每个文件出现list2编号的次数: 结果应该是这样的: 145 2 occurrences in name.txt 145 2 occurrences in els
List1 List2
name.txt 145
name.txt 132
else.txt 145
name.txt 145
else.txt 145
我需要计算list1中每个文件出现list2编号的次数:
结果应该是这样的:
145 2 occurrences in name.txt
145 2 occurrences in else.txt
132 1 occurrence in name.txt
我如何使用地图进行此操作
编辑:我尝试使用另一个列表:
ArrayList<String> newList2 = new ArrayList<String>();
for(int i=0;i<List2.size();i++)
{
if(List1.get(i).toLowerCase()==fileName.toLowerCase())
{
newErrorIDList.add(List2.get(i));
}
}
ArrayList newList2=newarraylist();
对于(int i=0;i如果您可以使用外部LIB,您可以使用guava的MultiSet+commons’对:
假设两个列表的大小相同:
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
Multiset<Pair<String, String>> set = HashMultiset.create();
for (int i = 0; i < List2.size(); i++) {
set.add(Pair.of(List1.get(i), List2.get(i)));
}
System.out.println(set);
import org.apache.commons.lang3.tuple.Pair;
导入com.google.common.collect.HashMultiset;
导入com.google.common.collect.Multiset;
Multiset set=HashMultiset.create();
对于(int i=0;i
=>给出[(else.txt,145)x2,(name.txt,132),(name.txt,145)x2]发布您已经尝试过的内容;)。我只尝试了列表,为了为每次事件创建另一个列表根据您编写的内容,您需要结果的名称-那么您所做的有什么问题吗?对于大型数据,它需要大量处理时间,使用地图更容易,我将发布我所做的……我将创建一些具有以下原型的东西:Map myMap代码>第一个键是列表列表2中的数字,第二个键是带有文件名的字符串,整数值是出现的次数。如何使用一对作为输入直接获取出现的次数?使用Multiset中的“计数”方法:例如set.count(pair.of(“name.txt”,“145”))