JAVA--集合

集合

  • 集合是一种容器,用来按规律存放数据的结构。集合只能放引用类型,不能放基本数据类型。
  • 数组也是容器,不过数组是定长的,既可以存储基本数据类型,也可以放引用类型。
  • 集合的分类
  • Collection
    • 是List接口和Set接口的父类。
    • 常用的方法:
      • boolean add(Object obj) 将ojb对象添加到集合中,如果添加成功返回true,失败返回false。
      • boolean addAll(Collection c) 将集合c全部添加到该集合中。
      • int size () 集合中的元素个数
      • boolean isEmpty() 判断集合元素是否为空
      • boolean contains(Object obj) 判断集合中是否包含某个元素
      • boolean containsAll(Collection c) 判断集合中是否全部包含集合c
      • Iterator iterator() 获取集合迭代器
      • Object[] toArray() 集合中的元素转为对象数组
      • boolean remove(Object obj) 从集合中删除元素obj
      • boolean removeAll(Collection c) 将集合c从该集合中删除
      • boolean retainAll(Collection c) 将集合与c取交集赋值给本集合。
      • void clear() 清空集合中所有的元素
  • List
    • List集合中放的元素是有序的,元素允许重复。
      •  
    • ArrayList
    • LinkedList
  • Set
    • Set集合中存放的元素是无序的,不重复的。
      • 无序是指加入集合的顺序和集合存储的顺序不一致
      • 不重复是指,对象之间使用equals()方法返回的值为false。
    • HashSet
      • 采用哈希算法来存储
      • 创建HashSet对象
        • HashSet<String> set = new HashSet<>();
      • 添加元素
        • set.add("A");
      • 遍历Set集合
    • TreeSet
      • 按红黑树的算法来存储
  • Map
    • HashMap
  • TreeSet
    • 存储是按顺序存储的(从小到大),所以,TreeSet存入的引用对象,需要能够比较大小的。
    • 所以往TreeSet中存入的元素类型,必须已经实现了Comparable接口,并重写接口中的compareTo()方法。否则运行时会抛出异常。
  • List List集合中放的元素是有序的,元素允许重复。
    • ArrayList
      • ArrayList是类似于数组的线性存储。
      • ArrayList的用法:
        • 1、创建ArrayList对象
          • ArrayList<类型> 对象名 = new ArrayList<>();
        • 2、添加对象
          • add(obj)
        • 3、获取某一个元素
          • get(index) index元素的索引,类似于数组的下标。从0开始,最大.size()-1。如果超出范围,报IndexOutOfBoundsException异常。
        • 4、 获取元素obj在list中第一次出现的索引值,如果没有,则返回-1。
          • int indexOf(obj)
        • 5、获取元素obj在list中最后一次出现的索引值。如果没有,则返回-1。
          • int lastIndexOf(obj)
        • 6、把指定索引位置index上的元素替换为obj
          • set(index,obj)
    • LinkedList
      • 数据结构中链表的实现,相比于ArrayList可以再头部和尾部添加、获取、删除元素。可以非常方便的实现stack、queue等数据结构。
      • LinkedList的使用方法
        • 1、构造方法创建对象
          • LinkedList<类型> 对象名 = new LinkedList<>();
        • 2、与ArrayList相比,新增的方法:
          • addFirst(obj) 将元素obj插入到链表的头部
          • addLast(obj) 将元素obj插入到链表的结尾
          • getFirst() 获取第一个元素
          • getLast() 获取最后一个元素
          • removeFirst() 删除并返回第一个元素
          • removeLast() 删除并返回最后一个元素
      • LinkedList与ArrayList的比较
        • 存储方面:
          • ArrayList是线性存储,LinkedList是将对象串联起来的链表
        • 操作性能
          • ArrayList随机查找效率高,LinkedList的插入删除操作效率高
        • 功能
          • LinkedList的功能要多于ArrayList
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值