1. 程式人生 > >將Map中的元素用key分組

將Map中的元素用key分組

//將多個Map組成的陣列用每個Map中的相同key值進行分組,該方法也可傳入一個Map,給一個Map中的元素進行分組

public static Map mapCombine(List<Map> list) {
        Map<Object, List> map = new HashMap<>();

//遍歷list
        for (Map m : list) {

//將每個Map中的所有鍵存入到set集合中。因為set具備迭代器。所以可以迭代方式取出所有的鍵
            Iterator<Object> it = m.keySet().iterator();
            while (it.hasNext()) {
                Object key = it.next();

//若new的Map中不存在某個key,則將該key對應的value存入list中並將此list存放進new的 Map中,key不變
                if (!map.containsKey(key)) {
                    List newList = new ArrayList<>();
                    newList.add(m.get(key));
                    map.put(key, newList);
                } else {

//若存在某個key則直接將其value值add進該key對應的list中
                    map.get(key).add(m.get(key));
                }
            } 
        }
        return map;
    }

相關推薦

Map元素key分組

//將多個Map組成的陣列用每個Map中的相同key值進行分組,該方法也可傳入一個Map,給一個Map中的元素進行分組 public static Map mapCombine(List<Map> list) {         Map<Object, L

Map的參數封裝為XML

pack cme rms fin .com msm urn business finally 1 public String packageYDImageUploadXML(String versionCode, Map parmsMap) throws ParseEx

資料結構演算法題/陣列元素奇數排在前面偶數在後面(前面奇數和後面的偶數分別有序)

一個無序整數陣列,對它排序,使其前半部分都為奇數有序,後半部分為偶數有序。 (1)方案1 O(n^2) 基本想法:利用插入排序演算法,對奇偶子序列分別插入排序。用兩個變數把整個陣列分割為三個部分,第一個部分為奇數有序子序列,第二部分為偶數有序子序列,第三部分為未排序子序列。使用兩個變數進行分

資料結構演算法題/陣列元素奇數排在前面偶數在後面(前面奇數和後面的偶數不需要有序)

  處理策略是定義兩個指標pHead,pTail並令其初始指向陣列頭節點和尾節點。pHead從前往後找應該放在尾部的偶數節點,pTail從後往前找應該放在頭部的奇數節點,若pHead位於pTail之前則交換二者內容,否則結束處理過程。 處理流程如下圖所示。從圖中可以看出時間複

Javamap值按照key鍵和value值分別排序

參考:https://www.cnblogs.com/zhujiabin/p/6164826.html 1. 按照key排序,可以藉助有序集合TreeMap實現,如下: @Test public void sortByMapKey() { Map<String,Str

map的值賦值給一個java物件

Map tag=new HashMap(); tag.put("001"," 張三"); tag.put("002","李四"); my_UpInfoVo my_UpInfoVo = new My_UpInfoVo(); BeanUtils.populate(my_UpInfoVo, tag); &n

js 取listmap 元素的值

res = {"total":20,"JEZJ":[{"JEZJ":6993048.790000}],"rows":[{"KHMC":"張野","WLBH":"1000104","DDZT":"已取消","DDRQ":"2018/03/03","DDSL":5.700000,

java 獲取map所有的key

java.util.Iterator it = map.entrySet().iterator(); while(it.hasNext()){       java.util.Map.Entry entry = (java.util.Map.Entry)it.next();       entry.getKe

使用Arraylist陣列元素隨機均等亂序分為N個子陣列

使用Arraylist將陣列中元素隨機均等亂序分為N個子陣列 覺得有用的話,歡迎一起討論相互學習~Follow Me 為了將陣列中的元素 隨機地 ,均等地, 不重複地 ,劃分到N個子陣列中 使用Arraylist將陣列中的元素儲存到ArrayList中,使用Collections.shuffle

根據value取得map對應的key

hashmap中key值是唯一的,但value是不唯一的,所以是沒有辦法通過像get(key)取value值一樣,直接取key的 值。 所以當map中沒有重複值時,根據value取得key是唯一的,但是要自己寫一個方法來讀取。 當有重複值時,取得第一個匹配的值,由於是

[java反射]Map的屬性值轉換至物件Object

轉換規則為:Map中的key是新物件的屬性名,Map中的value是新物件中的屬性值 import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Field; import java.util.*

python 讀取大文件越來越慢(判斷 keymap ,千萬別 in keys())

方案 使用 tail 千萬 上傳 true 文件夾 blog alt 背景: 今天樂樂姐寫代碼,讀取一個四五百兆的文件,然後做一串的處理。結果處理了一天還沒有出來結果。問題出在哪裏呢? 解決: 1. 樂樂姐打印了在不同時間點的時間,直接print time() 即可。發

【基礎】結構體重載, char*作為std::mapkey

重載 http 註意 urn .net 參考 article 添加 無法 結構體重載 C++中,結構體是無法進行==,>,<,>=,<=,!=這些操作的,這也帶來了很多不方便的地方,尤其是在使用STL容器的時候,如果我們可以往語句中傳入結構體,一些

PHP方便快捷的二維數組元素的某一列值抽離出來作為此二維數組內元素key

列表 TP ech name 成績 img user 函數 emp 得益於PHP的強大的內置數組函數array_column();array_combine(); 舉個小栗子: <?php // 先查詢出用戶的基本信息 $userArray = [[‘id‘ =&g

Map四種獲取key和value值的方法,以及對map元素排序(轉)

compareto map.entry 排序 區別 sta hashmap 得到 package log 獲取map的值主要有四種方法,這四種方法又分為兩類,一類是調用map.keySet()方法來獲取key和value的值,另一類則是通過map.entrySet()方法來

char*作為std::mapkey

宣告map時需要新增一個cmp比較函式,不然map在比較時,使用char *的指標進行比較,而不是比較char字串。 #include <cstring> struct cmp_str { bool operator()(char const *a, char

一個類的屬性存入MAPkey為屬性名,value為屬性值)

有時候需要將javaBean與Map互轉,寫個方法(只寫了javaBean轉為Map,Map轉為javaBean比較簡單),供大家參考 /** * 獲取obj中的所有方法 * @param obj * @return */ public List<

Mapkey和Set元素物件必須重寫equals和hashCode方法

【強制】關於hashCode和equals的處理,遵循如下規則: 1) 只要重寫 equals,就必須重寫hashCode。 2) 因為 Set儲存的是不重複的物件,依據 hashCode和equals進行判斷,所以 Set儲存的 物件必須重寫這兩個方法。 3) 如果自定義物

java演算法實踐 list元素按照屬性分類成樹狀的map

java演算法實踐,同時也是一個有用的工具類。例如:一個學生資訊的list,學生的資訊由班級、性別、學號等,將list按照班級、性別分類。只需:     Map map = CollectionTools.classifyList(studentAllList,     "

vuev-for索引不要key

spa 定義 pan class col color key 特性 不出 今天發現在給元素v-for渲染的時候,想給元素添加key特性存儲索引,發現不奏效: <div class="apic" v-for="(pic,index) in msg.pics" ..