繁体   English   中英

从单个列表创建多个列表的算法

[英]Algorithm to create multiple lists from a single list

我有一个界面:

List<List<Integer>> separate(List<Integer> list);

我希望能够基于列表对象内的值是否相同,将参数化列表分为单独的整数列表,因此如果列表为{1, 1, 5, 7, 9} ,它将创建4个单独的列表:

  • {1, 1}
  • {5}
  • {7}
  • {9}

是否有一个易于使用的库? 我可以很容易地提出一个算法,但是如果列表中的元素不是Integers而是Objects而您想将分组规则基于其中的某些字段,那我该怎么做呢?

非常感谢您的帮助。

通常,您需要使用一个临时Map<Key, List<Type>> ,其中在示例中, KeyType均为Integer 对于大列表中的每个Integer ,请检查Map以查看该Integer是否已经是密钥。 如果不是,则添加新的List<Integer> 然后,无论哪种方式,将Integer添加到该键的List中。 然后,最后从Mapvalues()构造List<Integer>

对于更复杂的Type ,您可以选择一些不同的数据值作为Key ,否则代码将是类似的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM