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> ) :将集合中元素按照指定规则排 序。

     

     

     

  • 相关阅读:
    安装.NET FRAMEWORK 4.5安装进度条回滚之后发生严重错误 代码0x80070643
    C#远程时间同步助手软件设计
    Win7+Ubuntu双系统安装完成后时间不一致相差大概8小时
    php中类的不定参数使用示例
    php读写xml基于DOMDocument方法
    php写的非常简单的文件浏览器
    php封装的sqlite操作类
    phpstudy中apache的默认根目录的配置
    实现基于最近邻内插和双线性内插的图像缩放C++实现
    【STL深入理解】vector
  • 原文地址:https://www.cnblogs.com/kali5k/p/13460470.html
Copyright © 2011-2022 走看看