1. 程式人生 > >Java中Map和List組合使用的例子

Java中Map和List組合使用的例子

使用Java很方便的一條就是Java封裝了很多方便使用的Map和List。

這是我在開發過程中遇到的問題,通過傳入的字串封裝成List<Map<String, String>>格式,然後進行想要的操作,奉上程式碼!

/* 輸入引數:
	 * [{"index":"SB001","value":"0.380658"},{"indexNo":"SB002","value":"19.801300"},
	 * {"index":"SB003","value":"1.479825"},{"indexNo":"SB004","value":"15.371400"},
	 * {"index":"SB005","value":"1.079054"}]
	 * 返回值:
	 * [{"index":"SB001","value":"0.380658","chineseParam":"指標一"},{"indexNo":"SB002","value":"19.801300","chineseParam":"指標二"},
	 * {"index":"SB003","value":"1.479825","chineseParam":"指標三"},{"indexNo":"SB004","value":"15.371400","chineseParam":"指標四"},
	 * {"index":"SB005","value":"1.079054","chineseParam":"指標五"}]
	*/
	public static List<Map<String, String>> addKeyAndValueInMap(List<Map<String, String>> list) {
		
		Map<String, String> keyValue =new HashMap<String,String>();
		keyValue.put("SB001", "指標一");
		keyValue.put("SB002", "指標二");
		keyValue.put("SB003", "指標三");
		keyValue.put("SB004", "指標四");
		keyValue.put("SB005", "指標五");
		keyValue.put("SB006", "指標六");
		keyValue.put("SB007", "指標七");
		
		for(Map<String, String> map : list){
			String key = map.get("index");
			if(keyValue.containsKey(key)){
				map.put("chineseParam", keyValue.get(key));
			}
		}

		return list;
	}
	/* 輸入引數:list1
	 * [{"index":"SB001","value":"0.3"},{"indexNo":"SB002","value":"19.0"},
	 * {"index":"SB003","value":"1.4"},{"indexNo":"SB004","value":"15"},
	 * {"index":"SB005","value":"1.0"}]
	 * 輸入引數:list2
	 * [{"index":"SB001","value":"0.4"},{"indexNo":"SB002","value":"19.1"},
	 * {"index":"SB003","value":"1.5"},{"indexNo":"SB004","value":"12"},
	 * {"index":"SB005","value":"1.0"}]
	 * 返回值:
	 * ["SB001":"1","SB002":"1",
	 * "SB003":"1","SB004":"-1",
	 * "SB005":"1"]
	*/
	public static Map<String, String> compareList(List<Map<String, String>> list1,List<Map<String, String>> list2){
		
		Map<String , String> map1 = new HashMap<String , String>() ;
		Map<String , String> map2 = new HashMap<String , String>() ;
		for(Map<String , String> a : list1){
			map1.put( a.get("index") , a.get("value")) ;
		}
		for(Map<String , String> b : list2){
			map2.put( b.get("index") , b.get("value")) ;
		}
		
		Map<String , String> map3 = new HashMap<String , String>() ;
		for(Map.Entry<String, String> a : map1.entrySet()){
			String key = a.getKey() ;
			String value = a.getValue() ;
			if(map2.containsKey(key)){
				map3.put(key , value.compareTo(map2.get(key)) < 0 ? "-1" : "1") ;
			}
		}
		return map3;
	}


相關推薦

JavaMapList組合使用的例子

使用Java很方便的一條就是Java封裝了很多方便使用的Map和List。 這是我在開發過程中遇到的問題,通過傳入的字串封裝成List<Map<String, String>>格式,然後進行想要的操作,奉上程式碼! /* 輸入引數: * [{"

C++ maplist組合使用

一、功能需求1)既能根據鍵值快速查詢元素,同時又能根據元素插入順序pop出來該元素,該怎麼實現該容器?二、程式碼實現把map和list容器組合使用,封裝成一個全新的容器,以實現上述功能。程式碼如下://MapListUnion.h; #include <map>

javaMapList初始化的兩種方法

第一種方法(常用方法): //初始化List List<string> list = new ArrayList</string><string>

JAVAMAPLIST

new pub values pac exc except gpo x11 toarray @Test public void testMap2List() throws Exception{ Map<String, String> map = new

javamap表單字串相互轉換

一、需求 serialnum=123456&data=357c0a04f&enable=true&key=b5b806d0dc9 帶有&分割的字串,轉化為map的key、value型別儲存,反之也行。 二、程式碼 import java.util.

JavaMapSet容器如何存物件的

 之前看到過這樣一個問題,大概是:能否把一個物件(自定義,沒有任何方法)的兩個例項同時存放到同一個Set中去?  當時很懵,但是這幾天偶然看了Set和Map的原始碼就比較明瞭了。這裡總結一下。  首先,大體上為了儲存,有通過樹來存資料的,也有通過雜湊(has

javaMapSet的底層分析

1.HashSet底層是使用HashMap實現的。當使用add方法將物件新增到Set當中時,實際上是將該物件作為底層所維護的Map物件的key,而value則都是同一個Object物件(該物件我們用不上);其他的都是通過定義的HashMap物件實現的。 2.HashMap

JavaMapSet之間的關係(及Map.Entry)

1、通過查詢API文件: 2、Map.Entry是一個介面,所以不能直接例項化。 3、Map.entrySet( )返回的是一個collection集合,並且,這個collection中的元素是Map.Entry型別,如下圖所示: 4、 Map是Java中的

JavaSet、ListMap、foreach簡單例子

package com.cn.forecah; import java.util.ArrayList; import java.util.HashMap; import java.util.HashS

JavaMap, List, SetQueue的區別使用場景

1. Java集合類基本概念 在程式設計中,常常需要集中存放多個數據。從傳統意義上講,陣列是我們的一個很好的選擇,前提是我們事先已經明確知道我們將要儲存的物件的數量。一旦在陣列初始化時指定了這個陣列長度,這個陣列長度就是不可變的,如果我們需要儲存一個可以動態增長的資

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

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

Java TimerTimerTask 定時器定時任務使用的例子

這兩個類使用起來非常方便,可以完成我們對定時器的絕大多數需求 Timer類是用來執行任務的類,它接受一個TimerTask做引數 Timer有兩種執行任務的模式,最常用的是schedule,它可以以兩種方式執行任務:1:在某個時間(Data),2:在某個固定的時間之後(i

javacheckedunchecked 異常處理的例子

有兩種型別的異常:一種是checked異常一種是unchecked異常,在這篇文章中我們將利用例項來學習這兩種異常,checked的異常和unchecked異常最大的區別就是checked去唱是在編譯時檢查的而unchecked異常是在執行時檢查的。 什麼是checked異

javaMap,List與Set的區別

Map 是一種把鍵物件和值物件對映的集合,它的每一個元素都包含一對鍵物件和值物件。 Map沒有繼承於Collection介面 從Map集合中檢索元素時,只要給出鍵物件,就會返回對應的值物件。  Map 的常用方法:  1 新增,刪除操作:  [html] view plain copy  

javaMap有哪些實現類使用場景

     Java中的map是一個很重要的集合,他是一個介面,下面繼承它實現了多個實現類,這些類各有千秋,各自有個各自的優點和缺點,先上圖。     map的主要特點是鍵值對的形式,一一對應,且一個key只對應1個value。其常用的map實現類主要有HashMap、Hash

JavaMap獲取keyvalue

Java Map獲取key和value的方法    List<Map<String,Object>> list  =new ArrayList<Map<String,

JavaMap集合Collection集合的區別

Map集合和Collection集合的區別?    Map集合:是一種鍵和值的對映關係(雙列集合)                Collection集合:單列集合,只能儲存一種型別的元素     間接關係:HashSet依賴於Map介面的子實現類HashMap的      

JavaIntegerint比較大小出現的錯誤

最好 裏的 pan 轉換 als 範圍 urn 返回 錯誤 Java在某一處維護著一個常量池,(我記得)在小於128的範圍內,直接用 1 Integer i = 100; 2 int j = 100; 3 return i == j;//true 這裏返回的是true.

javaArrayListLinkedList區別

插入 list 新的 查找 arr tro 基於 列表 時間復雜度 ArrayList和LinkedList最主要的區別是基於不同數據結構 ArrayList是基於動態數組的數據結構,LinkedList基於鏈表的數據結構,針對這點,從時間復雜度和空間復雜度來看主要區別: