1. 程式人生 > >一個Map的工具類

一個Map的工具類

[code]package com.huanglq.util;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
* 這是一個用1.5寫的Map的工具類
*
* @author huanglq
*
* @param <K>
* @param <V>
*/
public class MapUtil<K, V> {

/**
* 這個方法只用於存放一個K-V的Map
*
* @param map
* @return
*/
@SuppressWarnings(value = { "unchecked" })
public K getMapKey(Map<K, V> map) {
Set set = map.keySet();
Iterator iterator = set.iterator();
if (iterator.hasNext()) {
return (K) iterator.next();
}
return null;
}

/**
* 獲得Map中特定value的key值
*
* @param map
* @param value
* @return
*/
@SuppressWarnings(value = { "unchecked" })
public K getMapKeyFromValue(Map<K, V> map, V value) {
Set set = map.keySet();
K key = null;
Iterator it = set.iterator();
while (it.hasNext()) {
key = (K) it.next();
if (value.equals(map.get(key))) {
return key;
}
}
throw new NullPointerException("沒有對應的Key值");
}

/**
* 測試
*
* @param args
*/
public static void main(String[] args) {
//這個Map要怎麼樣建都可以
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "one");
map.put(2, "two");
map.put(null, "three");
//map.put(4, null);
//map的value不能為空,不然就沒意義,而且在用它時會出現java.lang.NullPointerException

System.out.println(map.get(null));
/*
* 輸出 three
*/

MapUtil<Integer, String> mapUtil = new MapUtil<Integer, String>();
// Integer a=(Integer)mapUtil.getMapKey(map);
// System.out.println(a);

Integer key = (Integer) mapUtil.getMapKeyFromValue(map, "two");
System.out.println(key);
/*
* 輸出 2
*/
Integer key3 = (Integer) mapUtil.getMapKeyFromValue(map, "three");
System.out.println(key3);
/*
* 輸出 null
*/
Integer key2 = (Integer) mapUtil.getMapKeyFromValue(map, "twoo");
System.out.println(key2);
/*
* Exception in thread "main" java.lang.NullPointerException: 沒有對應的Key值
*/
}

}
[/code]

相關推薦

Map工具

循環 引用類型 turn 為什麽 sum 元素 接收 rem system Arrays工具類:  操作數組的工具類  工具類匯總的方法基本都是靜態的 **Arrays.toString(arr):把數組中的內容轉成字符串**Arrays.asList(arr):數組轉集合

一個ado工具

res sta tin sca batch ins sys esp proc using System;using System.Collections.Generic;using System.Text;using System.Data.SqlClient;using

list轉map工具,根據指定的字段分組

ase efi per getclass 字段 first err war ray import org.apache.log4j.Logger;import java.lang.reflect.Method;import java.util.ArrayList;impor

Redis | 嘗試封裝一個操作工具

介紹 本次主要介紹以下內容: 1、SpringMVC整合Redis 2、Spring Boot整合Redis(上) 3、Spring Boot整合Redis(中) 4、Spring Boot整合Redis(下) 5、使用redis為我們提供jar進行封裝 6、使用Spring Boot提供的

Map 工具

map 工具類 key 是否存在  /** * * key是否存在 * @param map * @param key * @param <K> * @param <V> * @

物件轉map工具BeanUtil

1、 2、當isAccessible()的結果是false時不允許通過反射訪問private變數。 package com.yung.ppapi.util; import java.beans.BeanInfo; import java.beans.Introspect

XML資料轉換為Map工具

所需架包:dom4j-1.6.jar 程式碼: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.

list轉map工具

前言 專案中時長需要用到list轉map的場景,比如需要查詢所有使用者的訂單列表,但是使用者和訂單不在一個庫的時候,無法進行join操作,就只能程式處理:先查詢一批使用者,再根據使用者的id列表批量查詢訂單列表,然後在程式中拼接使用者和其對應訂單。因此寫了個小

XML資料轉換為Map工具-XmlMapUtils

架包引用:<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</ver

很不錯的Map工具

將需要操作(主要用於取值)的Map物件放入該類,然後可以自動的進行型別轉換,獲取你需要的型別值 package utils; import java.util.HashMap; import java.util.Map; /** * Created by

一個Map工具

[code]package com.huanglq.util;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * 這是一個用1.5

java List Map 轉換成一個List T 工具

List<Object[]> 轉換成一個List<T> 工具類,程式碼如下: ListMapToBeanUtils.java檔案: package com.map.utils; import java.lang.reflect.Field; i

一個很簡單的工具,實體bean轉換成map

簡單的實體類: package cn.ibm.com.mytest; public class Human {     private Integer hid;     private String hname;          public Integer getHid

導出Excel工具一個主表多個明細表)

導出 excel 選擇 ①ExcelData.java(Excel數據封裝類)package com.kentra.util; import java.util.List; import java.util.Map; /** * * 描述:為導出Excel文件封裝數據 * 封裝Excel

UUID產生一個新文件名的工具

random div uid blog cnblogs turn ret ner domu 1.FileUtils.java package Utils.GenerateNewFileName; import java.util.UUID; public

一個java創建,刪除,構建Jenkins等功能的JenkinsUtil工具

args eem sco .class vip any ica == serve package com.vip.webpagetest.utils; import java.io.InputStream; import java.io.UnsupportedEncod

封裝一個基於NLog+NLog.Mongo的日誌記錄工具LogUtil

edi day rap ble mongo return 情況 earch ati 封裝一個基於NLog+NLog.Mongo的日誌記錄工具類LogUtil,代碼比較簡單,主要是把MongoTarget的配置、FileTarget的配置集成到類中,同時利用緩存依賴來判斷是否

重復造輪子,編寫一個輕量級的異步寫日誌的實用工具(LogAsyncWriter)

tail arch read 屬性 .info ssa CA TP arp 一說到寫日誌,大家可能推薦一堆的開源日誌框架,如:Log4Net、NLog,這些日誌框架確實也不錯,比較強大也比較靈活,但也正因為又強大又靈活,導致我們使用他們時需要引用一些DLL,同時還要學習各種

180705-一個簡單的冪等工具實現

scheduled check final https 內存問題 fault 可能 使用 關系 一個簡單的冪等工具類 在日常的工作中,業務的去重冪等場景屬於比較常見的需求,一般來講簡單的冪等工具類可以基於內存或者基於redis進行,本篇簡單介紹下,如何使用Guava的緩存

基於Java反射的map自動裝配JavaBean工具設計

person urn exception map.entry ati test javabean 好的 declare 我們平時在用Myabtis時不是常常需要用map來傳遞參數,大體是如下的步驟: public List<Role> findRoles(M