集合(一)之出入集合

集合

一.集合的基本概念

  • 集合是用来装东西的,就好像一个容器.

  • 数组是一个容器

  • 数组的缺点:长度不能改变,只能存储同一种数据

  • java为什么要提供许多集合类来存储数据

    • 1.因为要求集合类的长度是可变的

    • 2.不同的数据存储,操作方式不同

    • 3.底层有数组,链表,Hash表,树来实现

                                              ArrayList底层数组实现
                                List元素可重复   LinkedList底层链表实现
                                               Vocter底层数组实现线程安全
          单列集合 Collection
                                Set元素不可重复  HashSet底层hash表实现
    集合                                        TreeSet底层红黑树实现
                        HashMap
          双列集合 Map   TreeMap
                        HashTable

二.集合的体系

1.单列集合collection–(接口)

  • set接口:元素不可重复

    • 包含:Hashset类(底层由哈希表实现),Treeset类(底层由树实现)
  • list接口:元素可重复

    • 包含:ArrayList类(数组底层实现),LinedList类(底层链表实现),Vector类(底层链表实现–线程安全)

2.双列集合Map–()接口

HashMap类

TreeMap类

Hashtable类

迭代器

三.# List,ArrayList,LinkedList的特点,

  • List 元素可重复
    • List接口特点:
    • 可以存储重复元素
    • 有序的(按照元素的存入的顺序排列)
  • ArrayList 底层数组实现,查询快,增删慢
    • 创建之初,在底层创建一个默认长度为10的数组,
    • 当数组内容添加满了后,再继续添加时会扩容一个新数组,为原来的1.5倍
    • 缺点:扩容后,元素不能存满,空间浪费
  • LinkedList 底层是链表实现,查询慢,增删快
    • 元素查找时从第一个字节向后查找
    • 增加,删除元素时,其他元素位置不动,只需要改变指针域的值即可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值