zoukankan      html  css  js  c++  java
  • Java中的Collection集合(单列集合)

    1.集合概述

    集合:集合是java中提供的一种容器,可以用来存储多个数据。

    集合与数组的区别:

    (1)数组的长度是固定的,集合的长度是可变的。

    (2)数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。

    2.集合分类

    集合按照其存储结构可以分为两大类

    (1)单列集合java.util.Collection

    (2)双列集合java.util.Map

    3.单列集合java.util.Collection

    框架

    List的特点是元素有序、元素可重复。

    Set的特点是元素无序,而且不可重复

    (1)Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:

    • public boolean add(E e): 把给定的对象添加到当前集合中 。
    • public void clear() :清空集合中所有的元素。
    • public boolean remove(E e): 把给定的对象在当前集合中删除。
    • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
    • public boolean isEmpty(): 判断当前集合是否为空。
    • public int size(): 返回集合中元素的个数。
    • public Object[] toArray(): 把集合中的元素,存储到数组中。

    (2)List接口介绍

    List接口的特点:

    1. 它是一个元素存取有序的集合。
    2. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素
    3. 集合中可以有重复的元素,通过元素的 equals 方法,来比较是否为重复的元素。
     
    List接口的特有方法:
    public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
    public E get(int index) : 返回集合中指定位置的元素。
    public E remove(int index) : 移除列表中指定位置的元素 , 返回的是被移除的元素。
    public E set(int index, E element) : 用指定元素替换集合中指定位置的元素 , 返回值的更新前的元素。
     
    List接口的子类:
    ArrayList: 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为 查询数据、遍历数据,所以 ArrayList 是最常用的集合。
    LinkedList: 集合数据存储的结构是链表结构( 双向链表 )。方便元素添加、删除的集合。
    LinkedList特有方法:
    public void addFirst(E e) : 将指定元素插入此列表的开头。
    public void addLast(E e) : 将指定元素添加到此列表的结尾。
    public E getFirst() : 返回此列表的第一个元素。
    public E getLast() : 返回此列表的最后一个元素。
    public E removeFirst() : 移除并返回此列表的第一个元素。
    public E removeLast() : 移除并返回此列表的最后一个元素。
    public E pop() : 从此列表所表示的堆栈处弹出一个元素。
    public void push(E e) : 将元素推入此列表所表示的堆栈。
    public boolean isEmpty() :如果列表不包含元素,则返回 true 。

    (3)Set接口介绍

    与 List 接口不同, Set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
     
    常用子类:
    java.util.HashSet
    在jdk1.8 之前,哈希表底层采用数组 + 链表实现,即使用链表处理冲突,同一 hash 值的链表都存储在一个链表里。
    但是当位于一个桶中的元素较多,即 hash 值相等的元素较多时,通过 key 值依次查找的效率较低。而 JDK1.8 中,哈
    希表存储采用数组 + 链表 + 红黑树实现,当链表长度超过阈值( 8 )时,将链表转换为红黑树,这样大大减少了查找
    时间。
    简单的来说,哈希表是由数组 + 链表 + 红黑树( JDK1.8 增加了红黑树部分)实现的
    java.util.LinkedHashSet
     
    它是链表和哈希表组合的一个数据存储结构。可以保证元素存放的顺序
     
  • 相关阅读:
    搭建VirtoCommerce2.6开发环境,同官方dev分支保持同步(上)
    VirtoCommerce中文博客站,2015年11月18日上线了!
    C#编程连接数据库,通过更改配置文件切换数据库功能。
    浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
    将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)
    for语句嵌套使用 实现9*9乘法表
    浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
    使用SignalR为FineUI/Webform打造消息总线
    封装一个错误重试类
    封装一个锁处理类
  • 原文地址:https://www.cnblogs.com/lemperor/p/14242521.html
Copyright © 2011-2022 走看看