JavaSE的Collection 和 Map

前言

正文

jdk特性

加强for循环

用来替代迭代器的,简化数组和Collection集合的遍历

for(TYPE name:collectionName) {
    ...
}

泛型

public class 类名<泛型类型1,…> //泛型类
public <泛型类型> 返回类型 方法名(泛型类型 .) //泛型方法
public  interface 接口名<泛型类型1…> //泛型接口
泛型通配符
Collection<?> c = new ArrayList<Object>();
? extends E
向下限定,E及其子类
? super E
向上限定,E及其父类

Collection

1:添加功能
        boolean add(Object obj):添加一个元素
        boolean addAll(Collection c):添加一个集合的元素
2:删除功能
        void clear():移除所有元素
        boolean remove(Object o):移除一个元素
        boolean removeAll(Collection c):只要有一个元素被移除了,就返回true
3:判断功能
        boolean contains(Object o):判断集合中是否包含指定的元素
        boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是所有)
        boolean isEmpty():判断集合是否为空
4:获取功能
        Iterator<E> iterator()(重点)
5:长度功能
        int size():元素的个数
6:交集功能
        boolean retainAll(Collection c):返回交集给对应的对象
7:把集合转换为数组
        Object[] toArray()

List

有序(存储顺序和取出顺序一致),可重复

ArrayList

底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。

Vector

底层数据结构是数组,查询快,增删慢。
线程安全,效率低。

添加功能
     public void addElement(Object obj)      --  add() 
获取功能
     public Object elementAt(int index)      --  get()
     public Enumeration elements()           --  Iterator iterator()
     boolean hasMoreElements()               hasNext()
     Object nextElement()                    next()
LinkedList

底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。

添加功能
    public void addFirst(Object e)
    public void addLast(Object e)
获取功能
    public Object getFirst()
    public Obejct getLast()
删除功能
    public Object removeFirst()
    public Object removeLast()

Set

无序(存储顺序和取出顺序不一致),唯一

HashSet
底层数据结构是哈希表(元素是链表的数组)
哈希表依赖于哈希值存储
添加功能底层依赖两个方法:
    int hashCode()
    boolean equals(Object obj)
LinkedHashSet
元素有序唯一
由链表保证元素有序
由哈希表保证元素唯一
TreeSet
使用元素的自然顺序对元素进行排序
或者根据创建 set 时提供的 Comparator 进行排序
具体取决于使用的构造方法。 

Collections

public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。
public static <T> int binarySearch(List<?> list,T key):二分查找
public static <T> T max(Collection<?> coll):最大值
public static void reverse(List<?> list):反转
public static void shuffle(List<?> list):随机置换

Map

1:添加功能
      V put(K key,V value):添加元素。这个其实还有另一个功能?先不告诉你,等会讲
          如果键是第一次存储,就直接存储元素,返回null
          如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
 2:删除功能
      void clear():移除所有的键值对元素
      V remove(Object key):根据键删除键值对元素,并把值返回
 3:判断功能
      boolean containsKey(Object key):判断集合是否包含指定的键
      boolean containsValue(Object value):判断集合是否包含指定的值
      boolean isEmpty():判断集合是否为空
 4:获取功能
      Set<Map.Entry<K,V>> entrySet():???
      V get(Object key):根据键获取值
      Set<K> keySet():获取集合中所有键的集合
      Collection<V> values():获取集合中所有值的集合
 5:长度功能
      int size():返回集合中的键值对的对数

后记

eclipse快捷键

Ctrl+1 快速修复,快速导包

调试
F5单步调试进入函数内部。 
F6单步调试不进入函数内部。 
F7由函数内部返回到调用处。 
F8一直执行到下一个断点。 

标记

2018.4.30 重新修改

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值