1.map的方法归类 首先map集合中存放的都是一组组映射关系 key=value(键值,value值) map增加的方法: put: put(K key, V value) ;
添加集合元素的同时,它可以编辑原有的元素如果说集合中没有key对应的value,那么集合中添加元素如果说集合中对应的key有value值,则代表替换原有的值添加元素时,如果键已经在集合中存在,那么后添加的值会覆盖原来的值,并且put方法会将原有的值返回 案例 如下图:2.返回替换前的key对应的value的值 首先有两种方法:
entrySet: 使用这种方法如下代码: Set<Entry<String, Object>> entrySet = map.entrySet(); for (Entry<String, Object> entry : entrySet) { System.out.println(entry.getKey()+"==="+ entry.getValue()); }keySet: Set<String> keySet = map.keySet(); for (String key : keySet) { System.out.println(key+"==="+ map.get(key));(注:这两种方法是有区别的:entrySet跟迭代器的原理是一样的,当它遍历的时候会将key值,与value值一起遍历,比起keySet更具有实用性与方便性,entrySet本身map集合中。 keySet遍历只能将key值遍历,再通过key值取value值。)
Map删除的方法 删除使用的代码:map.clear(); 案例:
执行完map.char()之后 结果为: 集合当中就会为空的。
其次实例化作为Key添加到map集合中
Map<Student, String> map = new HashMap<>(); map.put(new Student("liuting",18), "beijing"); map.put(new Student("xuyangyang",20), "xingjiang"); map.put(new Student("bb",14), "qwe"); map.put(new Student("cc",112), "d"); map.put(new Student("liuting",18), "beijing"); (注:在这里必须使用HashMap) **2.重写hashcode** public int hashCode() { // TODO Auto-generated method stub return this.getName().hashCode()+this.getAge()*99; }(注:代码之后的数字并没有错误,运用实际比较重要)3.进行判断重复 如下面代码
public boolean equals(Object obj) { Student stu =(Student) obj; return this.getAge()== stu.getAge()&&this.getName().equals(stu.getName()); }4.进行遍历:
使用entrySet的方法进行遍历
Set<Entry<Student,String>> entrySet = map.entrySet(); for (Entry<Student, String> entry : entrySet) { System.out.println(entry.getKey()+"---"+ entry.getValue()); }返回一个equals判断重复的方法 之后得到结果如下:
2.按照需求进行年龄排序
1.首先对实体类用Compreble接口进行实现 class Student implements Comparable<Student>再重写一个方法对年龄进行判断,先判断主要条件再判断次要条件,如以下代码(注:以免出现不符合逻辑的情况)
public int compareTo(Student o) { // TODO Auto-generated method stub int num = this.getAge()-o.getAge(); if(num==0) { return this.getName().compareTo(o.getName()); } return num; }得到结果:
3.按照需求名字进行排序 1.于按年龄实现排序一样我们需要使用另外一个接口:comparetor
用实体类继承这个接口,再对姓名和年龄进行判断,先判断主要条件,再判断次要条件(注:以免出现不符合逻辑的情况)
class StuComp implements Comparator<Student>{ @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub int num =o1.getName().compareTo(o2.getName()); if(num==0) { return o1.getAge()-o2.getAge(); } return num; }得到结果:
统计字符再字符串中出现的字数 首先我们思考:我们要对字符串进行统计还有排序 1.统计功能:1,将字符串转为字符数组,将这个字符串中的字符当作map集合中的key将出现value值:
Map<Character, Integer> map = new HashMap<>();2.当第一个字符出现的时候,那么用它再集合中进行寻找,返回值必然为null 比如:
System.out.println(map.get('s'));(返回值为null)之后将该字符对应的值改为1,如果说该字符不是第一次出现,该字符对应的值不为null,然后应该加1
map.put('s', 1);(返回值为1)封装一个字符串数组:对字符串数组进行遍历
得到最后的结果为: