zoukankan      html  css  js  c++  java
  • List和Set

    一、List

    1.1特点

    @它是一个元素存取有序的集合。

    @它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)

    @集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素

    1.2 常用方法

    public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。

    public E get(int index) :返回集合中指定位置的元素。

    public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。

    public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

    1.3子类

    1ArrayList集合数据存储的结构是数组结构

    特点:元素增删慢,查找快

    2LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。

    LinkedList是一个双向链表

    二、Set

    2.1特点

    Set 接口中元素无序

    2.2HashSet(无序)

    1)概念

    java.util.HashSet 底层的实现其实是一个 java.util.HashMap 支持

    HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一性 的方式依赖于: hashCode equals 方法。

    (2)HashSet集合存储数据的结构(哈希表)

    哈希表是由数组+链表+红黑树

     

     

     

     

    HashSet存储自定义类型元素

     

    HashSet中存放自定义类型元素时,需要重写对象中的hashCodeequals方法,建立自己的比较方式,才能保 证HashSet集合中的对象唯

    (3)LinkedHashSet (有序)

    是链表和哈希表组合的一个数据存储结构

    LinkedHashSet继承自HashSet,源码更少、更简单,唯一的区别是LinkedHashSet内部使用的是LinkHashMap

    三、Collection

    一、常用功能

    java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下:

    public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。

    public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序。

    public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序。

    public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排 序。

     

     

     

  • 相关阅读:
    用elasticsearch分析中国大学省份分布
    【翻译】Kinect v1和Kinect v2的彻底比较
    翻译 Tri-Ace:在Shader里近似渲染公式
    翻译 基于物理渲染的美术资源设计流程
    翻译 次世代基于物理渲染的反射模型
    关于Depth Bounds Test (DBT)和在CE3的运用
    使用Xcode GPU Frame Caputre教程
    如何使用Xcode分析调试在真机运行的UE4 IOS版游戏
    个人翻译的cedec2010基于物理的光照
    使用Nsight查找CE3的渲染bug
  • 原文地址:https://www.cnblogs.com/kali5k/p/13460470.html
Copyright © 2011-2022 走看看