集合(容器)

数组特点:

一组数据类型相同的元素集合

创建数组时,必须给定长度,而且一旦创建昌都不能改变

一旦数组装满元素,需要创建一个新的数组,将元素复制过去

缺点:

        判断是否装满了,如果装满了,数组复制

        如果我们从数组中删除一个元素添加一个元素,需要移动后面的元素

集合 API

1,集合的概念

JAVA中为了解决存储结构单一的问题,提供了很多不同结果的集合类,让我们可以根据不同的场景进行数据存储选择,提供了数组集合的实现,链表结构的实现,哈希结构,树结构等等

让JAVA程序员使用起来很方便

集合体系概述
Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。

集合分为单列和双列集合

单列集合:一次刚进去一个值(对象)

Collection 接口,定义了单列集合共有的方法

(集合容器中默认可以添加Object类型,但是一般还是习惯一个集合对象中只保存一种类型

,因为保存多个类型,后期处理时,涉及到类型的转换问题)

泛型:可以在声明类型时,自定义参数类型

        ArrayList<E>

                        add(E e) ,,默认是向末尾添加元素

        List :可以有重复的数据对象

                ArrayList 数组列表

                        底层有一个数组,可以动态扩展数组长度,并提供一个一系列的方法操作

                LinkedLIst 链表列表

                        底层是一个链表结构,查询慢,增加,删除快

List 接口集合迭代

for 循环遍历

增强for循环的遍历

迭代器遍历()

                Vector 数组列表        线程安全的

                        每个都加的有锁·,线程安全,

        Set:不可以有重复的元素

         HashSet:  元素是无序的

        HashSet 在添加元素时,是如何判断元素是否重复的:

当我们向集合中添加一个元素时,如何每次都使用equals()比较内容是否相等效率会很低

如何比较的:

在底层会先调用hashCode()--Object中的hashCode()返回的是对象的地址(不调用这个)

                会调用类中重写的hashCode(),返回的是根据内容重新计算的哈希值

遍历时,会用哈希值先比较是否相等,会提高比较的效率

但是哈希值会出现问题,内容不同,哈希相同

此种情况下,在调用equals()比较内容,这样设计既提高判断效率,又保证安全

HashSet<String> set = new HashSet<>();

        set.add("a");

         set.add("a");

         set.add("a");

        set.add("a");

双列集合:键,值,

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值