1.Java:集合

集合作用

1.动态保存任意多个对象。
2.提供操作对象方法比如add,remove,set,get等方法。
3.使用集合添加,删除代码简洁。

集合分类

集合分为单列集合以及双列集合。
单列集合:
在这里插入图片描述
双列集合:
在这里插入图片描述

Collection接口特点

1.Collection接口没有直接实现的子类,只有通过它的子接口(list接口)和(set接口)实现。
2.Collection接口的实现类可以存放重复的类,有一些则不可以。
3.Collection接口的实现类有一些是有序的,可重复的(list)以及有一些是无序的,不可重复。

Collection接口常用方法

1.add(“添加元素”)
2.remove(“删除元素”)
3.set(“修改元素”)
4.get(“返回元素”)
5.contains(“查找元素是否存在”)
6.size(“获取元素个数”)
7.isEmpty(“是否为空”)
8.addAll(“添加多个元素”)
9.removeAll(“删除多个元素”)
10.containsAll(“查找多个元素是否存在”)

Collection 接口遍历元素方式 1-使用 Iterator(迭代器)

Iterable接口有一个方法Iterator所有的实现了Iterable接口的子接口以及实现类(参考单列集合图片)都有一个Iterator方法,返回一个Iterator接口的对象, Iterator本身不存储对象,只是用来遍历集合元素

public class CollectionIterator {
    public static void main(String[] args) {
//      向上转型,Collection接口指向它的子类ArrayList
        Collection list = new ArrayList();
        list.add(new Book("倚天屠龙记","金庸",80));
        list.add(new Book("风云","马荣成",60));
        list.add(new Book("绝代双骄","古龙",47));
        System.out.println("循环遍历输出集合里面的元素:");
        Iterator iterator = list.iterator(); //只要是实现Collection接口了就可以使用迭代器
        while (iterator.hasNext()){ //iterator.hasNext():判断是否有下一个元素
//          iterator.next():向下移动元素并且返回集合位置上的元素
//          System.out.println(iterator.next()); 等价于下面的写法
            Object obj = iterator.next();
            System.out.println(obj);
        }
    }
}
class Book{
    private String name;
    private String author;
    private int age;

    public Book(String name, String author, int age) {
        this.name = name;
        this.author = author;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", age=" + age +
                '}';
    }
}

在这里插入图片描述

Collection 接口遍历对象方式 2-for 循环增强

增强for循环就是简化版的迭代器(iterator),只能遍历集合或者是数组
语法:
for(元素类型 元素名 : 集合名 或者 数组名){
访问元素
}

public class CollectionIterator {
    public static void main(String[] args) {
//      向上转型,Collection接口指向它的子类ArrayList
        Collection list = new ArrayList();
        list.add(new Book("倚天屠龙记","金庸",80));
        list.add(new Book("风云","马荣成",60));
        list.add(new Book("绝代双骄","古龙",47));
        System.out.println("循环遍历输出集合里面的元素:");
//      list为集合名,o为元素名,Object为元素类型
        for (Object o : list) {
            System.out.println(o);
        }

    }
}
class Book{
    private String name;
    private String author;
    private int age;

    public Book(String name, String author, int age) {
        this.name = name;
        this.author = author;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", age=" + age +
                '}';
    }
}

在这里插入图片描述

list接口作用

list接口时Collection接口的子接口,list的集合类具有可重复性(可以输入相同的元素)以及有序性(添加的顺序和取出的顺序一致)
list集合类中的元素都有对应的索引。

list接口的常用方法

add(int index, Object ele):在 index 位置插入 ele 元素
addAll(int index,Collection eles):从 index 位置开始将 eles 中的所有元素添加进
get(int index):获取指定 index 位置的元素
indexOf(Object obj):返回 obj 在集合中首次出现的位置(后面如果还出现就不管)
lastIndexOf(Object obj):返回 obj 在当前集合中末次出现的位置(前面如果还出现就不管)
set(int index, Object ele):设置指定 index 位置的元素为 ele , 相当于是替换或者修改
subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合
(取值范围是一个闭区间到开区间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值