㈠ 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的用法和含義
map就像是list差不多。都是一個已經定義的對象要想使用可以像線面這樣直接定義使用就行,但是map和list有一點不同的是,當你往list裡面放東西的時候list不會管你放進去的東西有沒有重復,但是map的時候就會檢查你放的東西有沒有重復,重復的就不在放進去。。用法可以像下面的例子~
Map<String,UserVo>users=newHashMap<String,UserVo>();
㈢ java中的map函數怎麼用
map不是函數,是一個對象
可以
Map
map
=
new
HashMap();創建
Map就是鍵值對,
map.put("1","123");
map.put("2","234");
map.get("1")//123
map.get("2")//234
㈣ java 中Map用法
第一種是先把map的所有key看成Set,然後遍歷出每個key,根據key獲取value.
第二種是先把map看成一個Map.Entry的Set,那麼每個Map.Entry就是一個鍵--值對,遍歷這個Set,就遍歷出了一個個的Map.Entry,這個對象包含了鍵值對,直接從中獲取key和value就ok.
㈤ java map介面怎麼用啊
使用注意:對於Map的使用,初始化應注意!
將Map裝載進List當中,雖然循環多次賦值,並且每次賦值後的Map裝載入List,但實際到最後時,List中所有的Map為同一鍵值,因此建議在循環內每次都New一個新的Map對象,但為了效率考慮,最好就Map的申明放在循環外做;
public List readExcel(String fileUrl, String fileName, int sheetNum,
String[] attribute, int startRow, int[] ignoreColumn) {
// 返回值
List<Map<String, String>> result = new ArrayList<Map<String, String>>();
// 文件流
InputStream is = null;
// 讀入文檔的出錯行號
int errorRow = 0;
try {
// 如果同一文檔,則只產生一個實例
if (wb == null) {
is = new FileInputStream(fileUrl + "\\" + fileName);
wb = Workbook.getWorkbook(is);
is.close();
}
// 讀入Sheet頁
Sheet sheet = wb.getSheet(sheetNum);
// 行數
int rows = sheet.getRows();
// 根據每個Sheet頁的欄位數指定列數
int columns = attribute.length - 1 + ignoreColumn.length;
int countAttribute = 0;
// 列印信息
// System.out.print(sheet.getName() + " ");
// System.out.print("rows:" + rows);
// System.out.println(" columns" + columns);
// 逐行讀入
// Map<String, String> map = new HashMap<String, String>();
Map<String, String> map;
boolean rowIsNull;
aaa: for (int i = startRow - 1; i < rows; i++) {
// 每次讀入文檔前,清空map
// map.clear();
map = new HashMap<String, String>();
// 當前Sheet頁行數(指Excel行號)
errorRow = i + 1;
// 不為空列數計數值
int columnIsNotNullNum = 0;
// 一行數據中,必須有至少5列以上的數據,才認為該行為正常數據,否則退出
rowIsNull = true;
for (int k = 0; k < columns; k++) {
String rowContent = sheet.getCell(k, i).getContents();
if (rowContent != null && !rowContent.equals("")) {
++columnIsNotNullNum;
}
if (columnIsNotNullNum >= 5) {
rowIsNull = false;
break;
}
}
// 如果一行不超過5列有值,則跳出循環
if (rowIsNull)
break aaa;
// 逐列讀值
bbb: for (int j = 0; j < columns; j++) {
for (int k = 0; k < ignoreColumn.length; k++)
// 不讀忽略的列
if (j == ignoreColumn[k] - 1)
continue bbb;
// 取得單元格內容
String sbcContent = sheet.getCell(j, i).getContents();
// 全形轉換為半形
String content = CommonUtil.sbcChange(sbcContent);
// 建立資料庫欄位鍵值映射關系
map.put(attribute[countAttribute], content.trim());
countAttribute++;
}
// 將文檔名稱入庫
map.put(attribute[countAttribute], fileName);
result.add(map);
countAttribute = 0;
}
} catch (Exception e) {
wb.close();
try {
is.close();
} catch (IOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
result = null;
System.out.println(CommonCode.ERR_READ_ROW + ":" + errorRow);
}
return result;
}
㈥ 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 map = new HashMap();
map.put("移動","10086");
String c = map.get("移動");
結果c="10086」;
簡單來說,map就像我們手機的電話本,用map.put("移動","10086"),就是在電話本保存了移動的電話,然後當你想拿移動的電話時候就用String c = map.get("移動");就可以拿到電話號碼了。其實學習結合生活實際比較容易理解,也學得快。
㈧ java中map集合用法
Map map=new HashMap();//實例化map對象map.put("key","value");//存放值(值以鍵(key)-值(value)方式存放。)System.out.print(map.get("key").toString());//取值 根據鍵就可以取到值