gpt4 book ai didi

java - 如何处理List

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:42 24 4
gpt4 key购买 nike

晚上好我研究了倒排索引来存储包含该单词的文件名的单词使用 HashMap :Map <String,List<String>>例如:

Home : doc1,doc2,doc3 

现在我想做位置索引,将单词存储为 key这次不仅存储文件名,还存储文件名和单词在文件中出现的时间以及它在文件中出现的位置

<fname,freq,postion1,position2,position3>

例如:

java : doc1,3,4,8,30 

java 在 doc1 中出现 3 次,位置为 4 8 30所以我谷歌如何做这样的事情

我发现了关于 Tuple class所以我的hashMap就像

 public Map <String,List<Tuple>> positionIn=new HashMap<>();

还有我的Tuple class

public class Tuple {
private String filepath;
private int wordfreq;
private List <Integer> position;

private Tuple(String filepath, int wordfreq,List position) {
this.filepath = filepath;
this.wordfreq=wordfreq;
this.position = position;
}

public List<Integer> getPosition(){return position; }
public String getfilePath(){return filepath;}
public int getfreq(){return wordfreq;}

@Override
private boolean equals(Object o) {
if (!(o instanceof Tuple)) return false;
Tuple t = (Tuple) o;
return this.filepath.equals(t.fname());
}
}

我的问题是:

例如如何处理这个元组列表list 中的 contains 方法这样做是否正确 list.contains(fname)list.contains(position)

以及如何单独获取其元素?

最佳答案

根据评论中的要求,我将其添加为答案:

您希望能够通过以下方式区分元组:

  • 文件名
  • 出现次数(不同的出现次数意味着文件中的不同单词)

因此,您的 equals 方法还应该比较两个列表。这可以通过 list1.containsAll(list2) 来完成&& list2.containsAll(list1)

对于 list.contains(x)您需要x成为 Tuple 的实例如list类型为List<Tuple>
因此,为了查明您的列表是否包含“/my/path/myFile.txt”,您需要 list.contains(new Tuple("/my/path/myFile.txt", 0, null))

关于java - 如何处理List<Tuple>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com