Map:雙列集合 不能擁有重復(fù)的鍵 一次存一對(duì)
添加 v put(); 返回之前的v值 putAll(Map<K,V> map); 如果鍵相同會(huì)出現(xiàn)值覆蓋
刪除 void clear(); v romve();
判斷 boolean containsKey(object); boolean containsValue(object); boolean isEmpty();
獲取 v get(); int size();
public class Map_Test1 {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
methodMap(map);
}
public static void methodMap(Map<Integer,String> map)
{
map.put(3,"yusongjiang1");
System.out.println(map.put(3,"erhu"));//返回之前的v值
map.put(6,"asdaxcds");
map.put(2,"zxcdfsadw");
System.out.println(map);
}
}
結(jié)果

結(jié)果
map取出集合元素中的兩種方式
1、keyset();取出所有鍵并儲(chǔ)存在set集合中 并用map.get();取出集合中的值
// keySet(); 取出所有的鍵,并存儲(chǔ)到set集合中
Set<String> keySet=map.keySet();
// 將map轉(zhuǎn)換成Set使用迭代器取出
for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
String key = iterator.next();
String value=map.get(key);
System.out.println(key+"-----"+value);
}
2.調(diào)用entrySet();
//emtrySet();Map.Entry;其實(shí)就是一個(gè)Map接口中的一個(gè)內(nèi)部接口
Set<Map.Entry<String, String>> set=map.entrySet();
for (Iterator<Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext(); ) {
Map.Entry<String, String> next = iterator.next();
String key=next.getKey();
String value=next.getValue();
System.out.println(key+"....."+value);
}
例子
public class Map_Test2 {
public static void main(String[] args) {
/*取出Map中所有的元素
* map姓名---歸屬地*/
Map<String,String> map=new HashMap<>();
map.put("xiaoqiang","a1");
map.put("xiaoming","a2");
map.put("xiaoka","a3");
map.put("xiaofu","a4");
// keySet(); 取出所有的鍵,并存儲(chǔ)到set集合中
Set<String> keySet=map.keySet();
// 將map轉(zhuǎn)換成Set使用迭代器取出
for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
String key = iterator.next();
String value=map.get(key);
System.out.println(key+"-----"+value);
}
//emtrySet();Map.Entry;其實(shí)就是一個(gè)Map接口中的一個(gè)內(nèi)部接口
Set<Map.Entry<String, String>> set=map.entrySet();
for (Iterator<Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext(); ) {
Map.Entry<String, String> next = iterator.next();
String key=next.getKey();
String value=next.getValue();
System.out.println(key+"....."+value);
}
}
}
Map.Entry

圖片
中的Map.Entry為接口內(nèi)部接口
//Map.Entry 內(nèi)部接口類似演示
interface MapEntry{
public static interface Entry1{}
}
public class Map_EntryDemo implements MapEntry.Entry1 {
}
出現(xiàn)映射關(guān)系時(shí),應(yīng)該考慮使用Map集合
//根據(jù)用戶提供的漢語 返回英文
public class Map_Test4 {
public static void main(String[] args) {
String s=getEnWeek("星期三");
System.out.println(s);
}
public static String getEnWeek( String cnweek){
Map<String,String> map=new HashMap<>();
map.put("星期一","Monday");
map.put("星期二","Tuesday");
map.put("星期三","Wednesday");
map.put("星期四","Thursday");
map.put("星期五","Friday");
map.put("星期六","Saturday");
map.put("星期日","Sunday");
return map.get(cnweek);
}
}
//asdasawdsdwasdwq 獲取字符串中每個(gè)字母出現(xiàn)的次數(shù) 要求結(jié)果格式為 a(2)b(1)c(3)
public class Map_Test5 {
public static void main(String[] args) {
String s="asdasawdsdwasdwq";
String out=sortString(s);
System.out.println(out);
}
private static String sortString(String s) {
char[] chars=s.toCharArray();
Map<Character,Integer> map=new HashMap<>();
/* for (int i = 0; i <chars.length; i++) {
Integer value=map.get(chars[i]);
if (value==null){
map.put(chars[i],1);
}else {
System.out.println(value);
value++;
map.put(chars[i],value);
}
}*/
for (int i = 0; i <chars.length; i++) {
Integer value=map.get(chars[i]);
int count=0;
if (value!=null){
count=value;}
count++;
map.put(chars[i],count);
}
return toString(map);
}
private static String toString(Map<Character, Integer> map) {
StringBuilder sb=new StringBuilder();
Set<Character> set=map.keySet();
for (Iterator<Character> iterator = set.iterator(); iterator.hasNext(); ) {
Character key = iterator.next();
Integer value=map.get(key);
sb.append(key+"("+value+")");
}
return sb.toString();
}
}