您的位置:首页 > 编程语言 > Java开发

第十四天java学习map的使用

2017-07-27 00:49 197 查看

1. map

Map保存的数据是键值对,对集合中的数据操作是通过键对值进行操作键不能重复,值可以重复

如果键值存在,则修改对应的抽象值

对于数据的操作 通过键来完成的

增加put 修改put 删除remover 查找get(key)=>value

遍历:获得所有的value构成的集合valus()=>collection集合中只保存有所有的valus的值因此无法对应的值(2)获得所有的key构成的集合中保存所有的key,因此可以通过对应的key值找到对应的value值(3)获得所有的key-value值,先使用set的entryset获得,然后进行循环,并将obj转换为entry类型使用entry的getkey和getvalue的方法获得键和值。

HashMap根据hash算法保存数据,因此存放数据无序TreeMap根据key进行自然排序,因此存放的数据根据key从小到大排序一般情况下的key的数据类型比较简单如(Integer,String)但是如何key的数据类型比较复杂的情况下(如自义定类型)则该复杂数据类型应该实现compareable接口的compareto实现方法

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.泛型的认识

java se1.5 之前没有泛型的时候只能通过object的引用实现参数的任意化比如自己在定义一个类的时候重写compareto方法的时候要判断传过来的参数是否是该类的操作,如果是该类就将传过来的数据强制转化为该类。

泛型的好处是在编译的时候检查类型的安全,并且所有的强制转换都是自动和隐式的

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

Collections.swap(list, index1, index2)

Collections.revers()

Collections.sort(list [, comparator ])

Collection. binarySearch(list, [, comparator ])

Collection.max(list)

Collection.min(list)

Collection. replaceAll(list, oldObj, newObj)

Collection. synchronizedSet(Set)

Collection. synchronizedList(list)

Collection. synchronizedMap(map)

List.toArray( array ) 将集合中的元素保存到指定数组中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java