Bootstrap

[私用学习笔记·突击面试]Collection和迭代器

一.Collection

Java集合体系架构分为Collection和Map两大集合框架,其中Collection是单列集合的顶级接口,它具有单列存储的特点,即一次只能添加一个元素;而Map则是双列集合的接口。Collection作为顶级接口,它最主要的三个子接口分别是List,Set和Queue。同时,作为顶级接口它抽取了所有实现类的共有方法。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_45344586/article/details/130019194

二.使用Iterator使用hasNext遍历ArrayList

创建迭代器的方式:collection.iterator();

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

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

如果不使用hasNext方法,可能会报错。

三.List中的特有方法

在Collectoin接口中是没有get方法的,要使用get方法,使用拟合的方式,使用List的特殊构造。

四.ListIterator

怎么访问

ListIterator实现从头到尾或者从尾到头的遍历

ListIterrator是ArrayList,List中独有的方法,如果用Collection的对象去调用就访问不到。

正向和反向遍历

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

public class Main {
    public static void main(String[] args) {
        ArrayList<String> collection = new ArrayList<String>();
        collection.add("A");
        collection.add("B");
        collection.add("C");

        ListIterator<String> it = collection.listIterator();
        //从头到尾遍历
        while(it.hasNext())
        {
            System.out.println(it.next());
        }

        //从尾到头遍历:要实现从尾到头遍历,必须从头到尾先遍历一次,让累加器累加到结尾才可以让其累减
        while (it.hasPrevious()) {
            System.out.println(it.previous());
        }
    }
}

增强for循环:foreach

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

public class Main {
    public static void main(String[] args) {
        ArrayList<String> collection = new ArrayList<String>();
        collection.add("A");
        collection.add("B");
        collection.add("C");
        
        for(String a : collection)
        {
            System.out.println(a);
        }
        
    }
}

五.链表

java ListNode 链表 - 一文搞懂 - 博客园

;