第十四天java学习map的使用

时间:2021-02-23 15:38:15

1. map

  1. Map保存的数据是键值对,对集合中的数据操作是通过键对值进行操作键不能重复,值可以重复
  2. 如果键值存在,则修改对应的抽象值
  3. 对于数据的操作 通过键来完成的
  4. 增加put 修改put 删除remover 查找get(key)=>value
  5. 遍历:获得所有的value构成的集合valus()=>collection集合中只保存有所有的valus的值因此无法对应的值(2)获得所有的key构成的集合中保存所有的key,因此可以通过对应的key值找到对应的value值(3)获得所有的key-value值,先使用set的entryset获得,然后进行循环,并将obj转换为entry类型使用entry的getkey和getvalue的方法获得键和值。
  6. HashMap根据hash算法保存数据,因此存放数据无序TreeMap根据key进行自然排序,因此存放的数据根据key从小到大排序一般情况下的key的数据类型比较简单如(Integer,String)但是如何key的数据类型比较复杂的情况下(如自义定类型)则该复杂数据类型应该实现compareable接口的compareto实现方法

2.泛型集合

  1. 在定义集合使,规定集合保存的数据类型, 如果存放数据时不是该类型,则编译出错的,在操作的该集合数据无需类型转换
  2. 格式:集合类型<保存数据类型>

3.自定义泛型

1) 泛型方法:参数类型任意, 返回类型与参数类型一致
访问修饰符 <类型标示符>返回类型 方法名(类型标示符 参数名){}
何时指定具体的数据类型?
调用该方法时,根据实参的数据类型,指定类型标示符的数据类型
public T get(T obj){ return obj; } String str = t1.get(“abc”); 此时T就是String

2) 泛型类
语法: class 类名<类型标示符> {
在该类非静态方法头处可以使用类型标示符

              静态方法也要使用类型标示符,只能在方法声明处自己定义类型标示符

}
class Test2 { public T set(int index, T obj){ return obj; } public static void show(T obj){ } } Test2 t2 = new Test2(); 此时T就是String

  何时指定具体的数据类型?
创建该类对象时,指定数据类型

泛型类创建合法写法 Test2 t2 = new Test2(); Test2 t2 = new Test2 (); // 默认Object Test2 t2 = new Test2 (); Test2 t2 = new Test2(); Test2 t2 = new Test2();

3) 泛型接口
语法: interface 接口名<类型标示符> { }
何时指定具体的数据类型?
a) 实现类在实现泛型接口时,指定具体数据类型
如 class Test implement ITest{}
b) 实现类未执行泛型接口的具体数据类型,则该实现类为泛型类
如 class Test implements ITest{}

4.泛型的认识

  1. java se1.5 之前没有泛型的时候只能通过object的引用实现参数的任意化比如自己在定义一个类的时候重写compareto方法的时候要判断传过来的参数是否是该类的操作,如果是该类就将传过来的数据强制转化为该类。
  2. 泛型的好处是在编译的时候检查类型的安全,并且所有的强制转换都是自动和隐式的

5、Collections 对集合进行操作的类,提供了一些对集合操作的方法:

  1. Collections.swap(list, index1, index2)
  2. Collections.revers()
  3. Collections.sort(list [, comparator ])
  4. Collection. binarySearch(list, [, comparator ])
  5. Collection.max(list)
  6. Collection.min(list)
  7. Collection. replaceAll(list, oldObj, newObj)
  8. Collection. synchronizedSet(Set)
  9. Collection. synchronizedList(list)
  10. Collection. synchronizedMap(map)

List.toArray( array ) 将集合中的元素保存到指定数组中