一.Map集合的特点
1.Map集合是以键值对的方式来储存数据的
key(键)------value(值)
2.key是唯一的,一个键只能对应一个值,(如果已经存在该键再添加只会覆盖上一次的值)
但是一个值可以对应多个键。(key可以为null)
3.Map集合里面可以存储两种或者两种以上的数据类型
package com.mjx.set;
import java.util.HashMap;
import java.util.Map;
public class Text1 {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
//增加
//论证了观点3中添加三个不同数据类型到map中
map.put("a", 1);
map.put("b", "s");
map.put("c", new Student("小明",18,"男"));
//修改
//论证了观点2中的key的唯一性以及key可以为空
map.put("c", new Student("小强",19,"男"));
map.put(null, 2);
//删除
map.remove("a");
//查询
//论证了观点1,Map是以键值对的方式储存数据的
map.get("b");
}
}
二.Map集合的遍历方式
1.EntrySet
把键值对当成一个对象存入set集合当中
//Entry遍历方式
Set<String> keySet = map.keySet();
System.out.println("--------------entrySet()方法---------------");
Set<Entry<String, Object>> entrySet = map.entrySet();
for (Entry<String, Object> e : entrySet) {
System.out.println(e);
}
2.KeySet
将Map集合中所有的key(键)都存入Set集合当中
然后遍历这个集合
用Map集合中Map.get(key)得到键所对应的值
Set<String> keySet = map.keySet();
System.out.println("--------------------------keySet的forech便利方式--------------------------------");
for (String key : keySet) {
System.out.println("键为" + key + "---------值为" + map.get(key));
}
运行结果
三HashMap
实例,算出下列字符串各个字母出现的次数、
1.先将字符串转化为char数组
2.便利char数组。
3判断map集合中的键是否包含char中的值,
如果没有就添加进去如果有就修改对应的值
package com.mjx.set;
import java.util.HashMap;
import java.util.Map;
public class Text3 {
public static void main(String[] args) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
String s = "ssasdmnfblkafliwqeufklsandfndsafkas";
char[] ch = s.toCharArray();
for (char c : ch) {
if (map.get(c) == null) {
map.put(c, 1);
} else {
map.put(c, map.get(c) + 1);
}
}
System.out.println(map);
}
}
运行结果
四.泛型
泛型即为在生成一个map集合的时候为它指定类型
把运行产生的异常转换为编译的异常
例子
Map<String, Object> map = new HashMap<String, Object>();
map.put("a", 1);
map.put("b", "s");
map.put("c", new Student("小明", 18, "男"));
int s=(int)map.get("a");//这一行不会报错应为a原本就是int类型
int m=(int)map.get("c");//这一行就会报错无法将studednt转化为int类型
但在编译的时候不会报错,所以要指定泛型
五.集合框架工具类
Collections
排序
//根据年龄升序
package com.mjx.set;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Text4 {
public static void main(String[] args) {
List<Student> s = new ArrayList<Student>();
s.add(new Student("zm", 19, "女"));
s.add(new Student("xh", 17, "女"));
s.add(new Student("xf", 21, "男"));
s.add(new Student("xq", 13, "男"));
Collections.sort(s, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
return o1.getAge() - o2.getAge();
}
});
for (Student s1 : s) {
System.out.println(s1);
}
}
}
运行结果
Arrays
String[] arr=new String[] {"a","b","c","d","e","f"};
System.out.println(Arrays.toString(arr));
List<String> asList = Arrays.asList(arr);
System.out.println(asList);
//冒泡排序
Integer[] ar = new Integer[] {1,7,3,6,5,4,2,8};
Arrays.sort(ar);
System.out.println(Arrays.toString(ar));
結果
希望对你有所帮助