尝试删除第1列中的重复项而不删除行。 并且行值应该被转换为原始值。 使用java

我能够阅读在Java中的Excel文件&我试图删除第1列中的重复,保持行值,因为它是在同一行中变换行值为一个唯一的值,如下所示。

我的inputexcel表包含这样的 在这里输入图像说明

我的输出文件应该看起来像这样删除重复项,并使用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); 

提前致谢

您可以使用番石榴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())); 

你可以通过外部链接来获得(或者使用)一个hashmap的forms。

我喜欢实现自己的,所以这里是一个模拟。

 List<Integer> keys; List<String>[] map = new List<>[900]; //Use some number relative to the number of keys you have for(row : rows){ keys.add(row.col[0]); map[row.col[0]].add(row.col[1]) } 

然后写出每一行

 for(Integer i : keys){ row.col[0] = i; row.col[1] = map[i] }