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编辑  收藏  举报

导航