我能够读取java中的excel文件,并且通过将行值保持原样并将行值转换为同一行中的唯一值,以尝试删除第1列中的重复项,如下所示。

我的输入Excel工作表包含这样


我的输出文件应该看起来像这样,方法是删除重复项,并使用Java程序将行值放在一行中。


我使用了multimap来获取键值,但是如何获取用一行分隔的键值,而没有提到存储在arraylist中的myMultimap.get(“ Key”)中的键。

ArrayList l=new ArrayList();
        l.add(row.getCell(0).toString());
        ArrayList l1=new ArrayList();
        l1.add(row.getCell(1).toString());
        Multimap<String, String> myMultimap = ArrayListMultimap.create();
        myMultimap.put( ""+l, ""+l1);
        Collection<String> l2 = myMultimap.get(l);
        System.out.print(l2);


提前致谢

最佳答案

您可以使用Guava MultiMap实现所需的功能。

Multimap<String, String> myMultimap = ArrayListMultimap.create();

// Adding some key/value
myMultimap.put("Fruits", "Bannana");
myMultimap.put("Fruits", "Apple");
myMultimap.put("Fruits", "Pear");
myMultimap.put("Vegetables", "Carrot");

// Getting values
Collection<string> fruits = myMultimap.get("Fruits");
System.out.println(fruits); // [Bannana, Apple, Pear]


另一方面,您也可以使用LambdaJ组来生成该组。

Group<Person> groupPeopleByAge = group(persons, by(on(Person.class).getAge()));

10-07 22:56