簡體   English   中英

與JAVA中ArrayList的不同值

[英]Distinct value from ArrayList in JAVA

我有以下ArrayLists:1) List<MAP<String,String>> in 2) ArrayList<>()

[
[{name=a,age=33,city=NY},{name=b,age=23,city=NY},{name=d,age=83,city=CA}],
[{name=f,age=53,city=FL}],
[{name=d,age=11,city=TX},{name=a,age=13,city=CA}],
]

我想獲得新的ArrayList,其名稱具有不同的值,例如:

[{a},{b},{d},{f}]

你可以協助:)嗎?

您可以遍歷集合並將其添加到哈希集以獲取唯一名稱。

List<Map<String,String>> input = new ArrayList<>();
    Set <String> uniqueNames = new HashSet<>();
    for( Map<String, String> stringStringMap : input )
        uniqueNames.add(stringStringMap.get("name"));

或者在Java8中,可以使用流在一行中完成

  Set<String> uniqueNames = input.stream().map(a -> a.get("name")).collect(Collectors.toSet());

然后,您可以使用set創建一個ArrayList(就像您提到的ArrayList一樣)。

使用Java 8,您可以執行

//List<Map<String, String>> inList = new ArrayList<>(); 

List<String> outList = inList.stream().map(m -> m.get("name")).distinct().collect(Collectors.toList());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM