乙個Key對應多個Value

2021-08-17 17:01:04 字數 2264 閱讀 4810

map 乙個key對應乙個value,它可以滿足大部分需求。但有時我要用到乙個key對應多個value怎麼辦?

1.普通做法

map> map=new hashmap<>();

2.apache commons工具包裡有個org.apache.commons.collections.map.multivaluemap。

3.開源專案nohttp裡的multivaluemap。

public inte***ce multivaluemap.

*/set>> entryset();

/*** 拿到某乙個key下的某乙個值。

** @param key key.

* @param index index value.

* @return the value.

*/v getvalue(k key, int index);

/*** 拿到某乙個key下的第乙個值。

** @param key key.

* @return the value.

*/v getfirstvalue(k key);

/*** 拿到某乙個key下的所有值。

** @param key key.

* @return values.

*/listgetvalues(k key);

/*** 拿到multivaluemap的大小.

** @return size.

*/int size();

/*** 判斷multivaluemap是否為null.

** @return true: empty, false: not empty.

*/boolean isempty();

/*** 判斷multivaluemap是否包含某個key.

** @param key key.

* @return true: contain, false: none.

*/boolean containskey(k key);

}

public class basicmultivaluemapimplements multivaluemap

@override

public void add(k key, v value)

@override

public void add(k key, listvalues)

@override

public void set(k key, v value)

@override

public void set(k key, listvalues)

@override

public listremove(k key)

@override

public void clear()

@override

public setkeyset()

@override

public listvalues()

return allvalues;

}@override

public listgetvalues(k key)

@override

public v getfirstvalue(k key)

@override

public set>> entryset()

@override

public v getvalue(k key, int index)

@override

public int size()

@override

public boolean isempty()

@override

public boolean containskey(k key)

public map> getsource()

}

public class linkedmultivaluemapextends basicmultivaluemap

}

測試

public class test 

}}

總結:

1.普通方法,原始操作、不好維護、不可復用、不可拓展 。

2.需要引入jar包。

3.對普通方法進行封裝復用。推薦使用

乙個ViewController對應多個Xib

比例係數開發的大概步驟 1.選著乙個尺寸作為開發設計的基準 2.制定其他螢幕的適配規則 3.特殊的適配給出具體的效果圖 例如攜程的比例係數 5 autosizescalex 1 autosizescaley 1 6 autosizescalex 1.171875 autosizescaley 1.1...

通過Value獲取JSON中對應的KEY

public static string read string txtname,string apiname string json 建立輸入流,讀取excel inputstream is new fileinputstream filename.getabsolutepath jxl提供的wo...

關於乙個Action對應多個Form

由於乙個action可以用多個path來訪問,所以我們可以通過在struts config.xml中配置一下action來達到乙個action來對應多個form。下面是乙個action對應多個form的 struts config.xml的配置 type com.mac.struts.form.in...