JAVA-基于另一个CSV文件读取CSV文件

2020年5月26日 26点热度 0条评论

我正在努力使这项工作正常进行。所以我有两个CSV文件。

还有这个

所以最主要的是。我在第二个CSV中有SearchTerm。在第一个CSV文件中,我也有SearchTerms,它们应作为“标签”使用。
我需要的是从第一个CSV获取产品ID,并将其保存到List ,基于第二个csv使用的搜索词。因此,当使用Akt(平移)时,将导出一组IDS列表。如果有更多的Akt(平移)ID集,我想它们会作为数组保存到一个列表中。

我试图用CSVloaders读取它并使用lookup()方法搜索它

private final Map<List<String>, Comparison> data = Maps.newHashMap();
public Comparison lookup(String searchTerm) {
    return data.get(searchTerm);
}

比较类在哪里

public class Comparison {
@Parsed(field = "ProductId1")
private String productId1;

@Parsed(field = "ProductId2")
private String productId2;

@Parsed(field = "ProductId3")
private String productId3;

@Parsed(field = "SearchTerm")
private String SearchTerm;


public String getProductId1() {
    return productId1;
}

public String getProductId2(){
    return productId2;
}

public String getProductId3(){
    return productId3;
}

public List<String> getProductIds(){
    List<String> ids = new ArrayList<>();
    Collections.addAll(ids, productId1, productId2, productId3);
    return ids;
}

}

我的解决方案不好。每当我尝试使用lookup()方法时,我都会不断收到NullPointerException。

您对如何进行这项工作有任何想法吗?感谢oyu

解决方案如下:

问题出在HashMap中键的数据类型上。根据您的数据,它应该是一个字符串,而不是List <>。

private final Map<String, Comparison> data = Maps.newHashMap();
public Comparison lookup(String searchTerm) {
    return data.get(searchTerm);
}

然后,返回的对象(类型为“比较”)将具有给定搜索词的所有乘积ID。