Java之Collection集合框架

Java集合框架Collection

collection接口的实现、使用

类1:person(没有遵循变量定义规范)

class Person {
    String name;
    public Person(String name){
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
        if(obj == null || getClass()!=obj.getClass()){
            return false;
        }
        Person person = (Person) obj;
        return name.equals(person.name);
    }
}
package org.example;

import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

public class CollectionTest {

    @Test
    public void CollectionTest(){
        Collection A = new ArrayList();
        A.add(new Person("121"));
        /**
         * 1.contains:集合A是否包含某一个元素
         * 比较会从集合中第一个元素开始往后查,直到找到或者遍历到最后一个元素为止
         */
        A.contains(new Person("121"));
        /**
         * 2.containsAll:集合是否包含另一个集合的全部元素
         *
         */
        Collection B = new ArrayList();
        B.add(new Person("121"));
        B.add(new Person("122"));
        A.containsAll(B);
        /**
         * 3.remove:集合A中去掉某个元素
         * 比较的时候也是调用的equals方法
         * 当有多个相同元素的时候,只删一个,找到第一个,删除掉就返回,不会继续遍历
         */
        A.remove(new Person("121"));
        /**
         * 4.removeAll:集合A中去掉和集合B中元素相同的元素
         * 比较的时候也是调用的equals方法
         * 会遍历整个长度的集合
         */
        A.removeAll(B);
        /**
         * 5.retainAll:集合A中去掉和集合B中元素不同(不相同)的元素;保留交集
         * 比较的时候也是调用的equals方法
         */
        A.retainAll(B);
        /**
         * 6.size:返回集合A中元素的数量
         * 集合初始化之后,size()返回的空集合就是0,涉及null的集合,返回空指针异常
         */
        System.out.println(A.size());
        /**
         * 7.isEmpty:集合A是否为空
         *  ArrayList类重写Collection类:默认底层就是用的集合的size是否为0
         *  实际使用时根据需求,在初始化集合的时候可以匿名重写该方法,或者新建类继承ArrayList重写类方法
         */
        System.out.println(A.isEmpty());
        /**
         * 8.clear:清空集合A
         */
        A.clear();
        System.out.println(A.isEmpty());
        /**
         * 9.toArray():集合转换成数组
         * 数组转集合:Arrays.asList(Object obj);
         */
        Object obj = A.toArray();
        // 括号内只能放对象,如果是基础数据类型,则会被当成是一个对象,转换出来的长度是1
        Collection col = Arrays.asList(new String[]{"1", "2", "3"});
        /**
         * 10.hashCode:集合对象的哈希值
         */
        System.out.println(A.hashCode());
        /**
         * 11.iterator:迭代器,用于遍历集合
         */
        Iterator iterator = A.iterator();
        while(iterator.hasNext()){
            Person person = (Person) iterator.next();
            System.out.println(person.name);
        }
    }
}

Iterator经常用法

   @Test
    public void testIterator() {
        // Iterator 迭代器
        // 迭代器是用来遍历集合元素的,而集合是用来存储元素的,迭代器是 Iterator 接口的实现类
        //   Iterator 接口有 hasNext()、next()、remove() 三种方法
        // 示例
        //   定义一个集合
        Collection<Integer> collection = new ArrayList<>();
        //   向集合中添加元素
        collection.add(1);
        collection.add(2);
        collection.add(3);
        //  获取迭代器对象
        Iterator<Integer> iterator = collection.iterator();
        System.out.println(iterator.getClass());
        //   遍历迭代器
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        // jdk 5.0新增foreach(增强for)
        // 底层是用的仍然是迭代器,增强for循环的执行过程,是将集合/数组中的元素赋值给临时变量,
        // 基础数据类型或基础数据类型的包装类修改临时变量的值,并不会影响集合的值,
        // 说白了,传的还是地址,但是常见引用数据类型比如String都被final修饰了
        /**
         *格式:
         * for(要遍历的集合/数组元素的类型 临时变量 : 集合/数组){
         * }
         */
        for(Integer i : collection){
            System.out.println(i);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

录大大i

如果文章有用,还请鼓励一下作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值