java-collection集合

集合的概述和集合的继承体系

集合和数组的对比

1,数组的长度是不可变的,集合的长度是可变的。

2,数组可以存基本数据类型和引用数据类型。 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类。

集合类体系结构

 Collection集合

Collection 集合概述和使用

Collection集合概述

是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现

创建Collection集合的对象

多态的方式

具体的实现类ArrayList

Collection 集合常用方法

方法名

说明

boolean add(E e)

添加元素

boolean remove(Object o)

从集合中移除指定的元素

boolean removeif(Object o)

根据条件进行删除

void clear()

清空集合

boolean contains(Object o)

判断集合中是否存在指定的元素

boolean isEmpty()

判断集合是否为空

int size()

集合的长度,也就是集合中元素的个数

Collection 集合的遍历

Iterator:迭代器,集合的专用遍历方式

Iterator iterator():返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引。

Iterator中的常用方法

boolean hasNext():判断当前位置是否有元素可以被取出

E next():获取当前位置的元素 将迭代器对象移向下一个索引位置

public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();
        collection.add("a");
        collection.add("b");
        collection.add("c");
        collection.add("d");
        collection.add("e");
        Iterator<String> iterator = collection.iterator();
        while (iterator.hasNext()){
            String s = iterator.next();
            System.out.println(s);
        }
    }

上述代码是向Collection集合中添加元素并使用迭代器对集合进行遍历。

迭代器小结

Iterator iterator():创建迭代器对象,默认指向当前集合的0索引。

boolean hasNext():判断当前位置是否有元素可以被取出

E next():获取当前位置的元素 将迭代器对象移向下一个索引位置

迭代器中删除的方法练习

public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String s = iterator.next();
            if ("b".equals(s)){
                iterator.remove();
            }
            System.out.println(s);
        }
    }

增强for循环

增强for:简化数组和Collection集合的遍历,它是JDK5之后出现的,其内部原理是一个Iterator迭代器,实现Iterable接口的类才可以使用迭代器和增强for。

public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        for (String s : list){
            System.out.println(s);
        }
    }

List集合

List集合概述和特点

List集合概述

有序集合,这里的有序指的是存取顺序

用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素

与Set集合不同,列表通常允许重复的元素

List集合特点

有序:存储和取出的元素顺序一致

有索引:可以通过索引操作元素

可重复:存储的元素可以重复

List集合特有方法

方法名

说明

void add(int index,E element)

在此集合中的指定位置插入指定的元素

E remove(int index)

删除指定索引处的元素,返回被删除的元素

E set(int index,E element)

修改指定索引处的元素,返回被修改的元素

E get(int index)

返回指定索引处的元素

public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        addMethod(list);
        removeMethod(list);
        getMethod(list);

    }

    public static void getMethod(ArrayList<String> list) {
        String s = list.get(0);
        System.out.println(s);
    }

    public static void addMethod(ArrayList<String> list) {
        list.add(0,"aaa");
        System.out.println(list);
    }

    public static void removeMethod(ArrayList<String> list) {
        boolean flag = list.remove("a");
        System.out.println(flag);
        System.out.println(list);
    }

ArrayList集合

数据结构

数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。例如栈、队列、数组、链表。

栈是一种数据先进后出的模型。数据进入栈模型的过程称为:压/进栈;数据离开栈模型的过程称为:弹/出栈。

队列

队列是一种数据先进先出的模型。数据从后端进入队列模型的过程称为:入队列;数据从前端离开队列模型的过程称为:出队列。

数组

数组是一种查询快,增删慢的模型。查询数据通过地址值和索引定位,查询任意数据耗时相同,查询速度快;删除数据时,要将原始数据删除,同时后面每个数据前移,删除效率低;添加数据时,添加位置后的每个数据后移,再添加元素,添加效率极低。

链表

链表是一种增删快的模型(对比数组)链表是一种查询慢的模型(对比数组);

查询某个数据是否存在,必须从头(head)开始查询。

List集合常用实现类ArrayList

ArrayList:底层数据结构是数组,查询快,增删慢。

LinkedList集合

List集合常用实现类

List集合常用子类:ArrayList,LinkedList

ArrayList:底层数据结构是数组,查询快,增删慢

LinkedList:底层数据结构是链表,查询慢,增删快

LinkedList集合的特有功能

方法名

说明

public void addFirst​(E e)

在该列表开头插入指定的元素

public void addLast​(E e)

将指定的元素追加到此列表的末尾

public E getFirst​()

返回此列表中的第一个元素

public E getLast​()

返回此列表中的最后一个元素

public E removeFirst​()

从此列表中删除并返回第一个元素

public E removeLast​()

从此列表中删除并返回最后一个元素

public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");

        String firstStr = list.getFirst();
        String lastStr = list.getLast();
        System.out.println(firstStr);
        System.out.println(lastStr);

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值