導航:首頁 > 編程語言 > javamap例子csdn

javamap例子csdn

發布時間:2022-05-23 23:56:19

java中線程安全的map有哪些

JAVA中線程安全的map有:Hashtable、synchronizedMap、ConcurrentHashMap。

java中map中線程安全怎麼實現:

  1. 同步的map就是Hashtable, concurrenthashmap。

  2. 你看到的Hashtable就是直接在hashmap上加了個鎖,concurrenthashmap就是分成多個分段鎖。

⑵ 如何將map通過struts2轉成json-CSDN論壇

這里有個例子,你看看
Action的完整代碼

packagecn.ysh.studio.struts2.json.demo.action;

importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.HashMap;
importjava.util.Map;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts2.ServletActionContext;

importnet.sf.json.JSONObject;

importcn.ysh.studio.struts2.json.demo.bean.User;

importcom.opensymphony.xwork2.ActionSupport;

{

/**
*
*/
=1L;

//將會被Struts2序列化為JSON字元串的對象
privateMap<String,Object>dataMap;

/**
*構造方法
*/
publicUserAction(){
//初始化Map對象
dataMap=newHashMap<String,Object>();
}

/**
*測試通過action以視圖方式返回JSON數據
*@return
*/
publicStringtestByJSP(){
Useruser=newUser();
user.setId("123");
user.setName("JSONActionJSP");
user.setPassword("123");
user.setSay("Helloworld!");
JSONObjectjsonObject=newJSONObject();
jsonObject.accumulate("user",user);
jsonObject.accumulate("success",true);
//這里在request對象中放了一個data,所以struts的result配置中不能有type="redirect"
ServletActionContext.getRequest().setAttribute("data",jsonObject.toString());
returnSUCCESS;
};

/**
*測試通過action以Struts2默認方式返回JSON數據
*@return
*/
publicStringtestByAction(){
//dataMap中的數據將會被Struts2轉換成JSON字元串,所以這里要先清空其中的數據
dataMap.clear();
Useruser=newUser();
user.setId("123");
user.setName("JSONActionStruts2");
user.setPassword("123");
user.setSay("Helloworld!");
dataMap.put("user",user);
//放入一個是否操作成功的標識
dataMap.put("success",true);
//返回結果
returnSUCCESS;
}

/**
*通過action是以傳統方式返回JSON數據
*@throwsIOException
*/
publicvoiddoAction()throwsIOException{
HttpServletResponseresponse=ServletActionContext.getResponse();
//以下代碼從JSON.java中拷過來的
response.setContentType("text/html");
PrintWriterout;
out=response.getWriter();
//將要被返回到客戶端的對象
Useruser=newUser();
user.setId("123");
user.setName("JSONActionGeneral");
user.setPassword("JSON");
user.setSay("Hello,iamaactiontoprintajson!");
JSONObjectjson=newJSONObject();
json.accumulate("success",true);
json.accumulate("user",user);
out.println(json.toString());
//因為JSON數據在傳遞過程中是以普通字元串形式傳遞的,所以我們也可以手動拼接符合JSON語法規范的字元串輸出到客戶端
//以下這兩句的作用與38-46行代碼的作用是一樣的,將向客戶端返回一個User對象,和一個success欄位
//StringjsonString="{"user":{"id":"123","name":"JSONActionGeneral","say":"Hello,iamaactiontoprintajson!","password":"JSON"},"success":true}";
//out.println(jsonString);
out.flush();
out.close();
}

/**
*Struts2序列化指定屬性時,必須有該屬性的getter方法,實際上,如果沒有屬性,而只有getter方法也是可以的
*@return
*/
publicMap<String,Object>getDataMap(){
returndataMap;
}

}

⑶ java中map有幾種寫法,一般怎樣寫,有什麼區別嗎

Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> ma = new HashMap<>();
簡寫,就是前面指定泛型,後面就可以省略。
HashMap<String, Object> m = new HashMap<>();
HashMap<String, Object> mm = new HashMap<String, Object>();
不建議這么寫,一般是介面在左,實現類在右,實現依賴倒置原則。

⑷ java中Map的用法和含義

map就像是list差不多。都是一個已經定義的對象要想使用可以像線面這樣直接定義使用就行,但是map和list有一點不同的是,當你往list裡面放東西的時候list不會管你放進去的東西有沒有重復,但是map的時候就會檢查你放的東西有沒有重復,重復的就不在放進去。。用法可以像下面的例子~
Map<String,UserVo>users=newHashMap<String,UserVo>();

⑸ java map 的用法

map是個介面

用都是用HasMap等實現Map介面的類

創建:Map<String,String> map = new HashMap<String,String>();
插入元素:map.put("1","a");
移除版元素: map.remove("1");
清空: map.clear();

具體參權照java API
java.uitl.HashMap

⑹ java 寫一個方法返回值是Map類型

importjava.util.*;

publicclassdemo1{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
Stringarr=in.nextLine();

System.out.println(demo(arr));

}

publicstaticMap<String,List>demo(Stringarr)
{
String[]arrs=arr.split("");

Map<String,List>map=newHashMap<>();
List<String>list1=newLinkedList<>();
List<String>list2=newLinkedList<>();
List<String>list3=newLinkedList<>();
List<String>list4=newLinkedList<>();
for(inti=0;i<arr.length();i++){
if((arr.charAt(i)>='a'&&arr.charAt(i)<='z')||(arr.charAt(i)>='A'&&arr.charAt(i)<='Z')){
Charactercharacter=arr.charAt(i);
list1.add(character.toString());
}
elseif('0'<=arr.charAt(i)&&'9'>=arr.charAt(i)){

Charactercharacter=arr.charAt(i);
list3.add(character.toString());
}
elseif(''==arr.charAt(i)){
list2.add("");
}
else{
Charactercharacter=arr.charAt(i);
list4.add(character.toString());
}

}
map.put("character",list1);
map.put("space",list2);
map.put("other",list4);
map.put("number",list3);
returnmap;
}


}

剛剛給你寫了一個簡單的例子,其實正則比較方便

⑺ 誰用個簡單例子講講java 的hashmap,通俗點講,別用那些技術語言,那些不懂,只想知道那個理兒~

hashmap是一個存放數據的容器。數組也是一種容器,通過數據存取數據是通過數字下標來實現的。但開發的時候,用數字下標來取數據很不方便,冷不丁的誰知道第一個數據和第N個數據是什麼東東?
所以,用一個有意義的詞來代替下標,就會使數據更容易理解。例如你說的圖書管理系統,一本書有出版社、作者、簡介、字數、……等很多信息構成的數據,用ISBN號做這個數據的名字的話,就比用一個無意義的數字序號方便的多。在這里數據的名字稱為鍵值(KEY),數據則被稱為值(value)。
這種例用鍵值對(一對key,value)的形式存取數據的容器被稱為Map。在Map中查找數據是通過key來進行的。
學過計算機編程的一定學過排序,通常學習的時候都是通過數組的排序來學習的,都應該知道數據量越大排序的時間越長。Hashmap就是一種加快了key的排序查找過程的容器。
可以這么認為:Hashmap對每個key取HASH值,然後把這個數據放到該HASH值的對應數組(或鏈表)中。這樣,就用多個數組代替了一個數組,查找時先找到Key的HASH值對應的數據,然後在這個數組中查找這個KEY對應數據。最理想的情況下,每個KEY值的hash值都不一樣,這種情況下查找數據是最高效的。最差的情況是每個key的HASH值都一樣,這種情況就退化成了線性表,效率是最低的。

⑻ java中Map類有什麼作用,具體怎麼用呢

map是以鍵值對來存儲數據的,例如:
Map map = new HashMap();
map.put("移動","10086");
String c = map.get("移動");
結果c="10086」;
簡單來說,map就像我們手機的電話本,用map.put("移動","10086"),就是在電話本保存了移動的電話,然後當你想拿移動的電話時候就用String c = map.get("移動");就可以拿到電話號碼了。其實學習結合生活實際比較容易理解,也學得快。

⑼ java中幾種Map在什麼情況下使用,並簡單介紹原因及原理

一、Map用於保存具有映射關系的數據,Map里保存著兩組數據:key和value,它們都可以使任何引用類型的數據,但key不能重復。所以通過指定的key就可以取出對應的value。Map介面定義了如下常用的方法:
1、void clear():刪除Map中所以鍵值對。
2、boolean containsKey(Object key):查詢Map中是否包含指定key,如果包含則返回true。
3、boolean containsValue(Object value):查詢Map中是否包含指定value,如果包含則返回true。
4、Set entrySet():返回Map中所包含的鍵值對所組成的Set集合,每個集合元素都是Map.Entry對象(Entry是Map的內部類)。
5、Object get(Object key):返回指定key所對應的value,如Map中不包含key則返回null。
6、boolean isEmpty():查詢Map是否為空,如果空則返回true。
7、Set keySet():返回該Map中所有key所組成的set集合。
8、Object put(Object key,Object value):添加一個鍵值對,如果已有一個相同的key值則新的鍵值對覆蓋舊的鍵值對。
9、void putAll(Map m):將指定Map中的鍵值對復制到Map中。
10、Object remove(Object key):刪除指定key所對應的鍵值對,返回可以所關聯的value,如果key不存在,返回null。
11、int size():返回該Map里的鍵值對的個數。
12、Collection values():返回該Map里所有value組成的Collection。
Map中包含一個內部類:Entry。該類封裝了一個鍵值對,它包含了三個方法:
1、Object getKey():返回該Entry里包含的key值。
2、Object getValeu():返回該Entry里包含的value值。
3、Object setValue(V value):設置該Entry里包含的value值,並返回新設置的value值。

二、HashMap和Hashtable實現類:
1、HashMap與HashTable的區別:
1) 同步性:Hashtable是同步的,這個類中的一些方法保證了Hashtable中的對象是線程安全的。而HashMap則是非同步的,因此HashMap中的對象並不是線程安全的。因為同步的要求會影響執行的效率,所以如果你不需要線程安全的集合那麼使用HashMap是一個很好的選擇,這樣可以避免由於同步帶來的不必要的性能開銷,從而提高效率。
2) 值:HashMap可以讓你將空值作為一個表的條目的key或value,但是Hashtable是不能放入空值的。HashMap最多隻有一個key值為null,但可以有無數多個value值為null。
2、性能:HashMap的性能最好,HashTable的性能是最差(因為它是同步的)
3、注意:
1)用作key的對象必須實現hashCode和equals方法。
2)不能保證其中的鍵值對的順序
3)盡量不要使用可變對象作為它們的key值。

三、LinkedHashMap:
它的父類是HashMap,使用雙向鏈表來維護鍵值對的次序,迭代順序與鍵值對的插入順序保持一致。LinkedHashMap需要維護元素的插入順序,so性能略低於HashMap,但在迭代訪問元素時有很好的性能,因為它是以鏈表來維護內部順序。

四、TreeMap:
Map介面派生了一個SortMap子介面,SortMap的實現類為TreeMap。TreeMap也是基於紅黑樹對所有的key進行排序,有兩種排序方式:自然排序和定製排序。Treemap的key以TreeSet的形式存儲,對key的要求與TreeSet對元素的要求基本一致。
1、Map.Entry firstEntry():返回最小key所對應的鍵值對,如Map為空,則返回null。
2、Object firstKey():返回最小key,如果為空,則返回null。
3、Map.Entry lastEntry():返回最大key所對應的鍵值對,如Map為空,則返回null。
4、Object lastKey():返回最大key,如果為空,則返回null。
5、Map.Entry higherEntry(Object key):返回位於key後一位的鍵值對,如果為空,則返回null。
6、Map.Entry lowerEntry(Object key):返回位於key前一位的鍵值對,如果為空,則返回null。
7、Object lowerKey(Object key):返回位於key前一位key值,如果為空,則返回null。
8、NavigableMap subMap(Object fromKey,boolean fromlnclusive,Object toKey,boolean toInciusive):返回該Map的子Map,其key范圍從fromKey到toKey。
9、SortMap subMap(Object fromKey,Object toKey );返回該Map的子Map,其key范圍從fromkey(包括)到tokey(不包括)。
10、SortMap tailMap(Object fromkey ,boolean inclusive):返回該Map的子Map,其key范圍大於fromkey(是否包括取決於第二個參數)的所有key。
11、 SortMap headMap(Object tokey ,boolean inclusive):返回該Map的子Map,其key范圍小於tokey(是否包括取決於第二個參數)的所有key。

五、WeakHashMap:
WeakHashMap與HashMap的用法基本相同,區別在於:後者的key保留對象的強引用,即只要HashMap對象不被銷毀,其對象所有key所引用的對象不會被垃圾回收,HashMap也不會自動刪除這些key所對應的鍵值對對象。但WeakHashMap的key所引用的對象沒有被其他強引用變數所引用,則這些key所引用的對象可能被回收。WeakHashMap中的每個key對象保存了實際對象的弱引用,當回收了該key所對應的實際對象後,WeakHashMap會自動刪除該key所對應的鍵值對。

六、IdentityHashMap類:
IdentityHashMap與HashMap基本相似,只是當兩個key嚴格相等時,即key1==key2時,它才認為兩個key是相等的 。IdentityHashMap也允許使用null,但不保證鍵值對之間的順序。

七、EnumMap類:
1、EnumMap中所有key都必須是單個枚舉類的枚舉值,創建EnumMap時必須顯示或隱式指定它對應的枚舉類。
2、EnumMap根據key的自然順序,即枚舉值在枚舉類中定義的順序,來維護鍵值對的次序。
3、EnumMap不允許使用null作為key值,但value可以。望採納,謝謝。

⑽ java集合定義map

Map介面映射唯一鍵的值。一個關鍵是,要使用在日後檢索值對象。

給定一個鍵和一個值,可以在一個Map對象存儲的值。後的值被存儲時,可以使用它的鍵檢索。

拋出一個NoSuchElementException異常,是因為調用映射不存在的項目。

當一個對象是在映射上的元素不兼容拋出一個ClassCastException異常。

NullYiierException異常被拋出,如果試圖使用一個空對象。

當試圖改變一個不可修改的Map,則拋出一個UnsupportedOperationException異常。

SN

方法與描述

void clear( )

移除調用映射的所有鍵/值對。

boolean containsKey(Object k)

返回true如果調用映射包含k作為重點。否則,返回false。

boolean containsValue(Object v)

返回true如果映射包含v作為一個值。否則,返回false。

Set entrySet( )

返回一組包含在地圖中的條目。該集合包含類型Map.Entry對象。這種方法提供了一組視圖調用地圖。

boolean equals(Object obj)

如果obj是一個Map返回true,並且包含相同的條目。否則,返回false。

Object get(Object k)

返回與k關聯的值。

int hashCode( )

返回調用映射的哈希代碼。

boolean isEmpty( )

如果調用映射為空返回true。否則,返回false。

Set keySet( )

返回一個集,其中包含調用映射的鍵。這種方法提供了一組視圖中調用映射的鍵。

Object put(Object k, Object v)

放入調用映射中的條目,覆蓋與鍵相關聯的任何一個值。鍵和值分別為k和v。如果不已經存在鍵返回null。否則,將返回關聯鍵的前一個值。

void putAll(Map m)

把從m所有條目放進入此映射。

Object remove(Object k)

刪除其關鍵字等於k中的條目。

int size( )

返回在映射上的鍵/值對的數目。

Collection values( )

返回包含在映射中的值的集合。這種方法提供了一個集合視圖在映射中的值。

例子:

映射有其不同的類實現,比如HashMap。下面是例子來說明映射功能:

Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}

閱讀全文

與javamap例子csdn相關的資料

熱點內容
linux賬戶設置密碼 瀏覽:69
查看資料庫各表記錄數 瀏覽:968
linux查看文件的行數 瀏覽:692
fpga約束文件如何自動生成 瀏覽:377
linux打開的文件數 瀏覽:973
win8修改公用網路 瀏覽:324
linuxlcrt 瀏覽:30
編程里res是什麼意思 瀏覽:616
dm80082版本固件 瀏覽:37
蘋果手機用什麼可以打開psd文件 瀏覽:627
服務號和小程序的區別 瀏覽:888
360手機助手qq文件位置 瀏覽:693
如何學習數碼編程 瀏覽:60
微信消息發布出去 瀏覽:377
windows文件名一個個消失 瀏覽:907
易語言設置文件所有者 瀏覽:197
iphone手機如何顯示wifi密碼 瀏覽:880
文山大數據 瀏覽:496
3dsrxtools怎麼升級 瀏覽:903
樂高的機器人編程是用什麼 瀏覽:542

友情鏈接