本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

自学编程之JAVA篇:Collection集合

发布于2021-03-13 13:47     阅读(1182)     评论(0)     点赞(22)     收藏(1)


自学编程之JAVA篇:Collection集合


本文只作记录,整理他人资料并结合自己的理解,如有版权侵犯,请及时联系1161227631@qq.com

Collection集合概述

Collection 接口是 List、Set 和 Queue 接口的父接口,通常情况下不被直接使用。Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合

List

1.有序的集合
2.允许存入重复的对象
3.有索引,可以用普通的for循环便利

  • ArrayList(数组)
    这是我们工作中用的最多最平凡的数据结构,位于 java.util 包中, ArrayList实现了List接口它是一个可调整大小的数组可以用来存放各种形式的数据。并提供了包括CRUD在内的多种方法可以对数据进行操作但是它不是线程安全的,具体可以看这位老哥的文为什么说ArrayList是线程不安全的?

  • LinkedList(链表)
    是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。

  • Vector(队列)
    因为平时用到的不多,所以没怎么了解过,日后了解了会更新补上。

Set

1.该容器中只能存储不重复的对象(去重)
2.没有索引,不能用普通的for循环便利

  • HashSet
    HashSet类,是存在于java.util包中的类 。同时也被称为集合,基于HashMap实现,,允许且只允许存一个null。HashSet在进行元素添加时,底层先计算出该元素的hashcode值,再根据该值进行hash算法计算得出hash表中存储的位置,此位置可以理解为hash表中的元素的索引值。如果该索引值中无元素存在,则添加。如果有,则取出该位置的元素计算得出hashcode值,如果相等,再进行equals比较,比较两内容是否相等,如果相等,则表示是同一元素,放弃添加。

  • LinkedHashSet
    集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序。这样使得元素看起 来像是以插入顺序保存的,也就是说,当遍历该集合时候,LinkedHashSet将会以元素的添加顺序访问集合的元素。
    LinkedHashSet在迭代访问Set中的全部元素时,性能比HashSet好,但是插入时性能稍微逊色于HashSet。

  • TreeSet
    TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。

常用方法

上述所有类都继承自collection接口,任意的单列集合都可以使用Collection接口中的方法

public interface Collection<E> {
	// 集合大小
    int size();
	// 判断是否为空集合
    boolean isEmpty();
	// 判断是否包含某元素
    boolean contains(Object var1);
	// 添加
    boolean add(E var1);
	// 移除
    boolean remove(Object var1);
	// 判断是否包含某些元素
    boolean containsAll(Collection<?> var1);
	// 多元素添加
    boolean addAll(Collection<? extends E> var1);
	// 多元素移除
    boolean removeAll(Collection<?> var1);
	// 保留全部
    boolean retainAll(Collection<?> var1);
	// 清空
    void clear();
	// 比较
    boolean equals(Object var1);
	// 返回元素的哈希值
    int hashCode();
	// 把集合中的元素存到数组里
    Object[] toArray();
}

原文链接:https://blog.csdn.net/Neo_Qiang/article/details/114671034



所属网站分类: 技术文章 > 博客

作者:Djfj

链接:http://www.javaheidong.com/blog/article/114335/236b7e8a4819509b566e/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)