JAVA集合----Collection

Java是一种面向对象语言,如果我们要针对多个对象进行操作,就必须对多个对象进行存储。而数组长度固定,不能满足变化的要求。所以,java提供了集合。

集合与数组的区别

集合的长度可变,存储元素是引用类型,元素类型可以不一致;数组的长度是固定的,存储元素基本类型或者引用类型,元素必须保证一致。

JAVA中集合类的关系图

 

集合作为一个容器可以存储多个元素,但是由于数据结构的不同,java提供了多种集合类。将集合类中共性的功能,不断向上抽取,最终形成了集合体系结构。
collection是List和Set的父接口
collection基本功能

       1:添加功能

                boolean add(Object obj): 添加一个元素
                boolean addAll(Collection c): 添加一个集合的元素
        2: 删除功能
                void clear(): 移除所有元素
                boolean remove(Object o): 移除一个元素
                boolean removeAll(Collection c): 移除一个集合的元素 ( 是一个还是所有 )
        3: 判断功能
              boolean contains(Object o) :判断集合中是否包含指定的元素
              boolean containsAll(Collection c) :判断集合中是否包含指定的集合元素 ( 是一个还是所有 )
              boolean isEmpty() :判断集合是否为空
        4: 获取功能
              Iterator iterator()用来获取集合中每一个元素
        5: 长度功能
               int size(): 元素的个数
        6:交集功能
                boolean retainAll(Collection c): 两个集合都有的元素 ?
        7 :把集合转换为数组
               Object[] toArray() (引申:数组转集合)

List

有序的集合,允许重复元素存在

list集合特有功能

       1. 添加功能
              void add(int index,Object element): 在指定位置添加元素
       2.获取功能
             Object get(int index): 获取指定位置的元素
       3.列表迭代器
             ListIterator listIterator() List 集合特有的迭代器
       4.删除功能
              Object remove(int index) :根据索引删除元素 , 返回被删除的元素
       5.修改功能
              Object set(int index,Object element): 根据索引修改元素,返回被修饰的元素

List:ArrayList类和LinkedList类

ArrayList

线程不安全,查询速度快。底层数据结构是数组结构

LinkedList

线程不安全,增删速度快。底层数据结构是列表结构 

Set

主要有两个常用的实现类:HashSet 类和 TreeSet类

取出元素的方法只有迭代器。不可以存放重复元素,元素存取是无序的。

HashSet:线程不安全,存取速度快。
依赖的是元素的hashCode方法和euqals方法来保证元素的唯一性


TreeSet:线程不安全,可以对Set集合中的元素进行排序。它的排序是如何进行的呢?通过compareTo或者compare方法中的来保证元素的唯一性。元素是以二叉树的形式存放的。

迭代器 Iterator(集合独有的遍历方式)

while
for

注意事项:
1.不能实例化的。只能接收集合类对象调用自己的iterator方法来生成的Iterator对象
2.是集合独有的遍历方式
3.迭代器Iterator有for,while两个个方法
4. 用来遍历集合时,需要hasNext()方法和next()方法配合使用
5.在遍历的过程中,不允许对集合进行增删操作。如果想要对集合进行删除操作,也必须调用迭代器的remove()方法
6.不要多次使用next

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值