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() 是能拿到一个值的集合

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

  • 相关阅读:
    前端框架framework和库library的一点区别和记录
    DButils实现数据库表下划线转bean中驼峰格式
    layui内部使用jQuery
    Object...与Object[]使用的一点区别和记录
    SSM框架整合系列——第一步
    $.ajax的async设置true和false的区别一点笔记
    idea使用破解版mybatis plugin插件失败,idea打不开的解决方案
    ECharts在柱状图的柱子上方显示数量的方法
    Echarts使用Ajax异步获得数据的前端json格式转化问题
    Ajax的post表单,不在url后接一大串参数键值对的方法
  • 原文地址:https://www.cnblogs.com/lienjie/p/5412493.html
Copyright © 2011-2022 走看看