数据结构,集合(Collection),对象数组

本文介绍了Java中的集合(Collection)和数据结构,强调了集合作为灵活的容器与数组的区别,如长度可变和仅存储引用数据类型。讨论了ArrayList的相关方法,如add、remove、addAll等,并提到了迭代器的使用。此外,概述了数据结构的基本概念,包括栈、队列、数组和链表,并对比了ArrayList、Vector和LinkedList的特点。

数据结构,集合(Collection),对象数组

集合

(1)集合是什么:

作为一种容器,比数组要灵活,可以用来存储不同类型的数据。

(2)集合和数组的区别:

  1. 数组的长度是固定的,集合的长度是可变的

  2. 数组既能存储基本数据类型,又能存储引用数据类型,集合只能存储引用数据类型

  3. 数据存储同一种数据类型,集合可以存储多种数据类型

(3)相关的类和方法

1.ArrayList():

构造一个初始容量为 10 的空列表。

2.对象名.add():

添加一个元素到集合中去

3.remove(Object o):

移除此列表中首次出现的指定元素(如果存在)。

4.remove(int index):

移除此列表中指定位置上的元素。

注:List里面特有的方法,根据索引移除元素,如果区分不出来索引和int类型数据,可以手动包装一下

5.addAll(Collection B):

给一个集合添加进另一个集合中的所有元素

6.clear():

移除所有元素

7.boolean removeAll(Collection B):

移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素

如果没有交集元素 则删除失败 返回false

8.boolean contains(object O):

判断集合中是否包含指定的元素

9.boolean containsAll(Collection c):

判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)

10.boolean isEmpty():

判断集合是否为空

11.toArray():

返回包含此 collection 中所有元素的数组。

public class Demo {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(10);
        list.add(11);
        list.add(12);
        list.add(13);
        for(int i=0;i<list.size();i++){
            Object o = list.get(i);
            System.out.println(o);
        }
        Object[] objects = list.toArray();
        System.out.println(Arrays.toString(objects));
    }
}

(4)迭代器iterator():

作用===对 collection 进行迭代的迭代器。

1.hasNext():

如果仍有元素可以迭代,则返回 true

2.next():

返回迭代的下一个元素。

3.remove():

从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

(5)演示:

public class MyTest5 {
    public static void main(String[] args) {
        List list = new ArrayList(); //多态
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        //遍历List集合的方式1
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Object next = iterator.next();
            System.out.println(next);
        }

        System.out.println("--------------------------------------");
        //使用for循环来遍历List集合
        for (int i = 0; i < list.size(); i++) {
            Object o = list.get(i);
            System.out.println(o);
        }
    }
}

使用迭代器可以避免向下转型

数据结构

(1)概述:

数据结构其实就是存储数据的格式

(2)分类:

1.栈

弹夹形式,先进的后出。

2.队列

先进的先出,后进的后出。

3.数组

查询快(有索引),增删慢。

4.链表

查询慢,增删快。

(3)list的三个子类特点

ArrayList:

底层数据结构是数组,查询快,增删慢,线程不安全,效率高。元素有序,允许存储重复元素

Vector:

底层数据结构是数组,查询快,增删慢,线程安全,效率低

LinkedList:

底层数据结构是链表,查询慢,增删快,线程不安全,效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值