java - 将多个 ArrayLists 快速聚合成一个

标签 java arraylist data-structures

我有以下列表:

List<ArrayList> list;

list.get(i) 包含具有以下值的 ArrayList 对象 {p_name=set1, number=777002}

我必须创建一个

Map<key,value> 

其中键包含 p_name,值是数字。

如何轻松快速地做到这一点,因为初始列表中可能有数百个条目,并且每个数字都可以出现在多个 p_name 条目中。

更新:这是我目前的解决方案

 List<Row> list; //here is my data

    Map<String,String> map = new TreeMap<String,String>();

    for (Row l : list) {
        if (l.hasValues()) {
            Map<String, String> values = l.getResult(); // internal method of Row interface that returns a map
            String key = values.get( "number");
            map.put(key,  values.get( "p_name" ));
        }  
    }

该方法有效,但也许可以做得更好?

PS:我的设计有一个明显的错误。我想知道你是否找到它:)

最佳答案

正弦键可以有多个值,你正在寻找的是一个 MultiMap。 Multimap 或者简单的 map 形式

  Map<Key,ArrayList<Values>>

对我来说没有“快速”的方法。您仍然需要遍历所有元素并检查所有值。

实际上几百对 Java 来说根本不算多

关于java - 将多个 ArrayLists 快速聚合成一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009818/

相关文章:

java - 每次写入时 ehcache 都会刷新到磁盘

java - 在 JSP 中编写 URL

java - 使用Simple将不同对象的ArrayList写入XML文件

java - 反转文件的句子、行和单词

java - 在 Java 中有没有办法在 ArrayList 中命名一个 ArrayList?

java - 在 Java 中从 mysql 数据库表中检索数据

java - 抛出自定义 Java 异常

c - 尽管预先声明了一个数组,但C程序在存储字符串时遇到错误

java - 根据输入日期检索星期几

c - 如何将结构体数组传递给函数