Collection接口【集合】和Iterator迭代器类

1.1集合的概述

前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢?

  • 集合:集合是Java中提供的一种容器,可以用来存储多个数据。

那么意思就是说集合是容器,但是容器不全都是集合数组也是一种容器容器>集合

  • 集合和数组既然都是容器,它们有什么区别? 数组的长度是固定的。集合的长度是可变的。

  • 数组中存储的是同一类型的元素,可以存储基本数据类型值,也可以储存对象

    但是,集合只能存储对象

int[] arr = new int[10];//数组中可以存放基本数据
 Student[] arr = new Student;//数组中也可以存放对象
 ​
 ArrayList<Student> stus = new ArrayList<>();//集合只能存储对象

 

 

1.2集合的架构

集合的学习目标:

  • 1、会使用集合存储数据

  • 2、会遍历集合,把数据取出

  • 3、掌握每一种集合的特性

集合的学习方式:

  1. 学习顶层【父类】的接口或抽象类中的共性方法,所有的子类都可以使用;

  2. 使用底层:顶层【父类】不是接口就是抽象类,无法创建对象使用,就需要使用底层【子类】创建对象使用

  3. TreeSet和HashSet类是无序的集合【存储和取出的元素,顺序有可能不一致】,LinkHashSet类是有序的集合。

 

集合的两种遍历方式

1、迭代器

A、通过集合对象获取迭代器对象

B、使用循环遍历迭代器

C、判断迭代器对象是否还有对象

D、有元素,则获取。

 
 1 public static void main(String[] args) {
 2          Collection<String> coll = new ArrayList<>();
 3          coll.add("hello");
 4          coll.add("world");
 5          coll.add("Java");
 6  7          //使用集合对象获取迭代器,变量对象
 8          Iterator<String> it = coll.iterator();
 9          while (it.hasNext()){
10              String next = it.next();
11              System.out.println(next);
12          }
13      }
14  }

 

2、迭代器的实现原理:

 

3、增强for循环

增强for循环(也称for each循环)是 JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。 它的内部原理其实是个Iterator迭代器.

语法格式:

容器:集合,数组

 for(容器对象的数据类型 变量名 容器对象){
             //循环体语句:sout(变量名)
        }

注意:新for循环必须有被遍历的目标。目标只能是Collection或者是数组。新式for仅仅作为遍历操作出现。

posted @ 2020-04-16 20:50  Elvin熊  阅读(224)  评论(0)    收藏  举报