zoukankan      html  css  js  c++  java
  • Collection 回顾

    Collection
    List : 每一个元素都有索引,所以List提供了一些对索引的操作。 可以放重复的元素
    |- ArrayList
    |- Vector
    同步的
    |- LinkedList
    ---------------
    ListIterator listIterator()
    特殊的迭代器,这个迭代器提供了remove,add,set操作
    疑问:什么实用用迭代器对List进行操作? 迭代的时候。
    迭代的时候,如果直接对集合操作,再次迭代的时候就会抛出异常
    --------------------
    Set:set没有索引 。 set不能放重复的元素
    |- HashSet :重复元素是指hashCode相同且 equals方法返回true。 实现是一个hash表。内部实现其实HashMap
    |- LinkedHashSet: 有序的。 有一个链表结构
    |- TreeSet:重复元素是指:比较结果为0的时候,会认为两个元素相同
    特性:
    会把里边的元素按某种规则排序。
    TreeSet的元素要嘛实现了Comparable接口,要嘛TreeSet有一个用来比较这种元素的Comparator

    ------------------------
    集合遍历:
    Collection:
    1、通过iterator方法拿到迭代器,然后不断通过 hashNext方法 来判断是否还有下一个元素, 通过next方法拿到具体的元素
    2、 foreach循环 格式: for(元素的类型 变量名 : 集合引用)

    List
    比别的集合多了一个索引。
    List list = new ArrayList();
    for(int i = 0; i < list.size(); i++)
    {
    Object o = list.get(i);
    }

    ========================================
    Map
    存放的是键值对,java里的描述是 Map.Entry<K,V>

    HashMap:通过hash表来实现的。 键值为null
    内部的具体实现是通过一个: 数组 + 链表

    TreeMap:通过排序二叉树。TreeMap 里是通过键比较进行排序的。只有用比较器有判空条件时候才能键为null。
    要嘛你的键的类型实现了Comparable接口,要嘛就是传入一个比较器来比较键
    key1.compareTo(ke2)

    HashTable : 1.0版本的表。线程同步的

    -------------------------------------------
    遍历: 因为map没有迭代器,所以不能直接用foreach循环。
    1、通过entrySet方法拿到Entry的集合,之后进行遍历
    2、通过keySet拿到key的集合,之后进行遍历
    -----------
    遍历值的话: values() 是能拿到一个值的集合

    =============================================

  • 相关阅读:
    机器学习公开课笔记第八周之推荐系统
    使用RT3070使开发板上网
    Linux及FL2440使用过程遇到的各种问题和小技巧
    学习 Git的使用过程
    Linux下Bash shell学习笔记
    MarkDown学习笔记
    STM32F407+STemwin学习笔记之STemwin移植补充Touch
    STM32F407+STemwin学习笔记之STemwin移植
    DXP常用的设置及快捷键
    第九届蓝桥杯-嵌入式比赛体会与备赛经验
  • 原文地址:https://www.cnblogs.com/lienjie/p/5412493.html
Copyright © 2011-2022 走看看