簡體   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