Map:双列集合 不能拥有重复的键 一次存一对
添加 v put(); 返回之前的v值 putAll(Map<K,V> map); 如果键相同会出现值覆盖
删除 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);
}
}
结果
map取出集合元素中的两种方式
1、keyset();取出所有键并储存在set集合中 并用map.get();取出集合中的值
// keySet(); 取出所有的键,并存储到set集合中
Set<String> keySet=map.keySet();
// 将map转换成Set使用迭代器取出
for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
String key = iterator.next();
String value=map.get(key);
System.out.println(key+"-----"+value);
}
2.调用entrySet();
//emtrySet();Map.Entry;其实就是一个Map接口中的一个内部接口
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(); 取出所有的键,并存储到set集合中
Set<String> keySet=map.keySet();
// 将map转换成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;其实就是一个Map接口中的一个内部接口
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为接口内部接口
//Map.Entry 内部接口类似演示
interface MapEntry{
public static interface Entry1{}
}
public class Map_EntryDemo implements MapEntry.Entry1 {
}
出现映射关系时,应该考虑使用Map集合
//根据用户提供的汉语 返回英文
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 获取字符串中每个字母出现的次数 要求结果格式为 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();
}
}
网友评论