从数组字符串中删除重复项

时间:2014-04-16 15:29:41

标签: java duplicates duplicate-removal webdynpro

我已经用suppliernumbers填充了ArrayList个字符串。此列表包含重复值,因此我想使用HashSet删除它们。

我收到以下错误:表达式无效为语句 在线=>设置set = new HashSet(leveranciers); (设置下划线) 知道为什么吗?

String[] leveranciers = new String[wdContext.nodeShoppingCart().size()];

for(int i = 0; i<wdContext.nodeShoppingCart().size(); i++){

      String productnumber = wdContext.nodeShoppingCart().getShoppingCartElementAt(i).getMatnr()

      wdThis.wdGetAchatsIndirectController().GetDetails(productnumber, "NL");
      leveranciers[i] = wdContext.currentEt_DetailsElement().getLifnr();
}

 //Remove duplicates from array
        Set<String> set = new HashSet<String>(leveranciers);
        set.toArray(new String[0]);


for(int y = 0; y<set.size();y++){
    PdfPTable table = GetTable(set[y]);
    byte[] pdf = wdThis.wdGetAchatsIndirectController().GetPDFFromFolder("/intranetdocuments/docs/AchatsIndirect", table);
    wdThis.wdGetAchatsIndirectController().PrintPDF(pdf);
}

1 个答案:

答案 0 :(得分:2)

HashSet没有接受数组的构造函数。 看看HashSet文档。 http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html

您可以使用Arrays.asList方法实现目标:

final String[] strings = new String[] {"ab", "ba", "ab"};
final Set<String> set = new HashSet<String>(Arrays.asList(strings));