04Java语法回顾_collection

本文介绍了 Java 中 Collection 的概念及特点,对比了它与数组的不同之处,并详细解释了 Collection 接口提供的主要功能,包括添加、删除、判断、遍历等操作。同时,还展示了 Iterator 迭代器的具体使用方法。
摘要由CSDN通过智能技术生成

Java语法Collection


读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。

Collection由来

/*
 * 集合:
 *      由于我们使用的是面向对象语言,所以,我们要经常使用对象。而很多时候,我们可能需要使用很的对象,
 *      这个时候,我们就只能使用以前讲过的数组进行存储了,而数组的特点是长度固定。
 *      这样的话就不适合变化的数据。所 以,java重新提供了一种容器,用于存储对象,这种容器叫集合。
 * 
 * 集合的特点:
 *      A:长度是可以发生改变的。
 *      B:集合只能存储对象。
 * 
 * 集合和数组的区别?
 *      数组:
 *          数组长度固定。
 *          数组可以存储基本数据类型,也可以存储引用类型。
 *          数组存储的数据类型是一致的。
 *      集合:
 *          集合长度可变。
 *          集合只能存储引用类型。
 *          集合可以存储不同类型的对象。
 * 
 * 我们的集合这种容器,由于数据结构不同,所以,java就对应的提供了很多种集合类,供我们使用。
 * 
 * 数据结构:就是数据的组织(存储)方式。
 * 
 * Collection中应该有什么功能
 * A:添加功能
 *      boolean add(Object obj):向集合中添加一个元素
 *      boolean addAll(Collection c):向集合中添加一个集合的元素。
 * B:删除功能
 *      void clear():删除集合中的所有元素。
 *      boolean remove(Object obj):从集合中删除指定的元素
 *      boolean removeAll(Collection c):从集合中删除一个指定的集合元素。 
 * C:判断功能
 *      boolean isEmpty():判断集合是否为空。
 *      boolean contains(Object obj):判断集合中是否存在指定的元素。
 *      boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素。
 * D:遍历功能
 *      Iterator iterator():就是用来获取集合中每一个元素。
 * E:长度功能
 *      int size():获取集合中的元素个数
 * F:交集功能
 *      boolean retainAll(Collection c):判断两个集合中是否有相同的元素。???
 * G:把集合转换成数组
 *      Object[] toArray():把集合变成数组。 
 */

Collection代码测试

public class CollectionDemo {
    public static void main(String[] args) {
        // 创建对象
        // Collection c = new Collection();//接口不能被实例化
        Collection c = new ArrayList();//多态的特点:编译时期看左边父类方法,运行时期使用右边的子类方法

        // 添加元素
        // boolean add(Object obj):一个是添加,一个是返回添加是否成功。
        // System.out.println(c.add("hello"));
        // c.add("world");
        c.add("hello");
        c.add("world");
        c.add("java");

        // 删除功能
        // void clear():删除集合中的所有元素。
        // c.clear();
        // boolean remove(Object obj)// 删除某个元素
        // System.out.println("remove:"+c.remove("world"));
        // System.out.println("remove:"+c.remove("wor"));

        // 判断功能
        // boolean isEmpty()
        // System.out.println("isEmpty:"+c.isEmpty());
        // boolean contains(Object obj)
//      System.out.println("contains:" + c.contains("world"));
//      System.out.println("contains:" + c.contains("wor"));

        // 长度功能
        // int size()
        System.out.println("size:" + c.size());

        System.out.println("c:" + c);
    }
}

Iterator(迭代器)详解

/*
 * Iterator iterator():就是用来获取集合中每一个元素。
 * 
 * 成员方法:
 *      Object next():获取元素,并自动移动到下一个位置等待获取。
 *      boolean hasNext():判断迭代器中是否还有元素。
 *      
 * NoSuchElementException:没有这样的元素异常。你已经获取到元素末尾了,你还要获取,已经没有元素了。所以报错了。
 */

Iterator(迭代器)代码测试

public class IteratorDemo {
    public static void main(String[] args) {
        // 创建对象
        Collection c = new ArrayList();

        // 添加元素
        c.add("hello");
        c.add("world");
        c.add("java");

        // 方式1 把集合转为数组,通过for循环遍历取出数据
        // Object[] objs = c.toArray();
        // for (int x = 0; x < objs.length; x++) {
        // String s = (String) objs[x];
        // System.out.println(s);
        // }

        // 方式2
        // Iterator iterator():就是用来获取集合中每一个元素。
        // 通过集合对象获取迭代器对象
        Iterator it = c.iterator();// 这是返回的是Iterator的子类对象,多态

        while (it.hasNext()) {
            // System.out.println(it.next());
            String s = (String) it.next(); //Object转为String类型
            System.out.println(s);
        }
    }
}

ArrayList集合中的迭代器java源代码解析

//ArrayList集合中的迭代器java源代码解析

//伪代码


 public interface Iterator
 {
    public abstract boolean hasNext();
    public abstract Object next();
 }


 public interface Collection
 {
    public abstract Iterator iterator();
 }

 public interface List extends Collection
 {
    ...
 }

 public class ArrayList implements List
 {
    //1 在ArrayList中有一个iterator()方法
    public Iterator iterator() {
        return new Itr();
    }
    //ArrayList类中有一个内部类Itr实现自Iterator接口
    private class Itr implements Iterator {
        public boolean hasNext() {
            return xxx;;
        }

        public E next() {
            return xxx;
        }
    }
 }

————————————————————————————————————————
 用法:
    //多态
    Collection c = new ArrayList();
    //添加元素
    c.add("hello");
    c.add("world");
    c.add("java);

    Iterator it = c.iterator(); //把Itr返回来了,而Itr实现了Iterator接口。所以,这是多态的体现。
    while(it.hasNext())
    {
        String s = it.next();
        System.out.println(s);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值