Map接口的使用
1.Map定义:
Collection是孤立存在的,向集合中存储元素是一个一个放,Map中的集合 存储是成对,通过键找到值,键和值是映射关系。
2.注意:
Map集合中不能包含重复的键,但是可以包含重复的值。
3.继承关系:
Map接口不能实例化,HashMap,LinkedHashMap是Map接口的一个实现类,两个方法使用类似。
4.Map相关的方法:
添加:put 得到:get 移除:remove
代码:
public class MapDemo {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "赵六");
//键值不允许重复 如果重复 覆盖之前的值
map.put(4, "小明");
map.put(10000, "小红");
// System.out.println(map);
// String s = map.remove(1);
// System.out.println(s);
// System.out.println(map);
String s = map.get(4);
System.out.println(s);
}
}
5.集合遍历的方式:
调用集合的方法keySet,用Set集合存储Map的键
public class MapDemo1 {
public static void main(String[] args) {
//1 调用集合的方法 keySet 将所有的键 存储到Set集合中
//2 遍历Set集合 获取所有的键
//3 调用map集合中get() 获取值
Map<String, String> m = new HashMap<String, String>();
m.put("大哥", "猪大宝");
m.put("二哥", "猪二宝");
m.put("三个", "猪三宝");
Set<String> s = m.keySet();
Iterator<String> it = s.iterator();
while(it.hasNext()){
String key = it.next();
//通过键 key 获得值
String value = m.get(key);
System.out.println(key+": "+value);
}
System.out.println("================================");
for(String didi:m.keySet()){
String value = m.get(didi);
System.out.println(didi+": "+value);
}
}
}
6.集合的操作工具:
Collections.shuffle对集合进行随机排序
public static void fun1(){
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(12);
list.add(123);
list.add(1234);
list.add(12345);
list.add(123456);
System.out.println(list);
//调用 工具类方法shuffle 对集合进行随机排列
Collections.shuffle(list);
System.out.println(list);
}
Collections.binarySearch搜索变量
// Collections.binarySearch 静态方法
//传递集合 和要搜寻的变量 如果存在返回 下标 不存在返回负数
public static void fun(){
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
int aa = Collections.binarySearch(list, 2);
System.out.println(aa);
}