Java学习第十四天
1.Collection
List 有序,可重复,可以操作下标
|------ArrayList:
|------LinkedList:Node(数据,地址)
|------Vector
Set 无序,不可重复,不可以操作下标
|------HashSet:哈希表(根据哈希值确定对象的存储位置)
|------add() int hashCode() 和集合中已有的所有对象哈希值都不相同,直接加入集合,否则再调用equals()方法
|------TreeSet:二叉树,可排序,默认调用对象的 compareTo()方法 ,依据compareTo(Object obj)方法的返回值来确定谁大谁小,
需要对象所属的类实现
2.Comparable接口
当对象已有的比较大小的方式不满足需求,那么可以自定义排序方式,
Comparator compare(Object obj1,Object obj2)
3.泛型
1 //在创建对象时,才能确定泛型类型 2 泛型类:class Demo<T>{ 3 4 } 5 //当类上的泛型确定了方法的参数的类型才能确定 6 泛型方法:class Test<T>{ 7 8 public void s1(T t){} 9 //一个方法希望参数的类型是任意类型,相当于参数类型是 Object 10 //在方法前边加上<E> 表示方法自己使用泛型 11 public <T> ss(T t){} 12 13 14 //静态方法进内存的时候没有对象 Test.ff() 15 //静态方法只能自己使用泛型 16 public static <T> show(T tt){} 17 } 18 19 20 21 //泛型接口:一个接口能用泛型,说明在定义接口时定义了泛型 22 泛型接口: 23 interface inter<T>{ 24 //当接口上的泛型类型确定了,该方法的参数类型才能确定 25 public abstract void fun(Integer i); 26 } 27 28 class Tests implements inter<String>{ 29 30 } 31 32 33 34 //当类上的泛型确定了,接口的泛型才能确定 35 class Tests<T> implements inter<T>{ 36 37 } 38 39 Tests<String> t = new Tests<>();
4.通配符: ?
泛型限定:? extends E: 限定了上限,可以接收E类型或E类型的子类类型
? super E: 限定了下限,可以接收E类型或E类型的父类类型
5.Map<K,V>:集合,是一个独立的接口,不属于Collection的子接口,存储的是键值对,一对儿一对儿的存,
可以存储null键,null值的键不能重复(键要唯一)
|------HashMap
|------TreeMap
1 添加: 2 V put(K key, V value) 3 void putAll(Map<? extends K,? extends V> m) 4 5 删除: 6 V remove(Object key) 7 void clear() 8 9 获取: 10 V get(Object key) 11 12 Set<K> keySet() 13 Set<Map.Entry<K,V>> entrySet() 14 int size() 15 Collection<V> values() 16 判断: 17 boolean isEmpty() 18 boolean containsKey(Object key) 19 boolean containsValue(Object value) 20 21 Set<K> keySet() : 取到所有的键,存储到一个Set集合中,并返回该集合对象,因为Set有迭代器 22 所以得到Set集合的迭代器,每次迭代出来的是一个键,然后再根据键获取值 23 24 25 Set<Map.Entry<K,V>> entrySet() :取到每个键值对应的Map.Entry(映射关系)类型的值,存储到一个Set集合中,并返回这个集合 26 集合中每个映射关系类型的值既包括键也包括值,Entry是定义在Map内部的静态成员,Entry是对存储在 27 map内部的键值对的映射关系的描述,所以定义在Map内部 28 遍历: 29 Set<Map.Entry<String,String>> en = map.entrySet(); 30 31 Iterator<Map.Entry<String,String>> ite = en.iterator(); 32 33 while(ite.hasNext()){ 34 35 Map.Entry<String,String> e = ite.next(); 36 String key = e.getKey(); 37 String value=e.getValue(); 38 sop(key+"="+value); 39 }
posted on 2019-08-25 21:57 small_slag 阅读(216) 评论(0) 编辑 收藏 举报