集合

集合概述

  • Java集合大致可分为Set、List、Queue、Map四种体系,其中Set代表无序、不可重复的集合;List代表有序的可重复的集合;Map代表具有映射关系的集合;Queue代表一种队列集合的实现。
  • Java集合就像是一个容器,可以把多个对象(对象引用)放到该容器中。
  • Java的集合类主要由两个接口派生而出:Collect和Map,这两个接口是Java集合的根接口。
  • 集合的最常用实现类:HashList、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap、TreeMap。

Collection

接口方法

  1. boolean add(Object o):添加元素。
  2. boolean addAll(Collection a):把集合a中的所有元素添加到该集合中。
  3. void clear():清除集合中的所有元素。
  4. boolean isEmpty():返回集合是否为空。
  5. boolean contains(Object o):返回集合是否包含指定元素。
  6. boolean remove(Object o):删除集合中指定元素。
  7. int size():返回集合中的元素个数。
  8. Object[] toArray():将集合转换为一个数组。

Iterator

  • Iterator对象主要用于遍历,也被称为迭代器。
  • Iterator对象定义的方法:

boolean hasNext():如果还有元素则返回true。

Object next():返回集合里的下一个元素

void remove():删除集合里上一次next方法返回的元素

void forEachRemaining(Consumer action):可使用Lambda表达式来遍历集合的元素

  • Iterator必须依附于Collection对象。
  • 当使用Iterator遍历Collectio对象的元素时,Collection集合里的元素不能被改变,只有通过Iterator的remve()方法删除上一次next()方法返回的集合元素才可以。

 

 遍历集合推荐三种方式:

1、使用Collection提供的forEach方法,JDK8之后提供

2、使用foreach循环

3、使用Iterator迭代器

如果需要在循环过程中删除元素,需要使用Iterator迭代器实现,先执行next()方法,在调用迭代器的remove()方法,不要使用集合的remve()方法

 

 1 package com.arix.collection;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collection;
 5 import java.util.Iterator;
 6 
 7 public class CollectionDemo {
 8     public static void main(String[] args) {
 9         Collection<String> co = new ArrayList<>();
10         co.add("a");
11         co.add("b");
12         co.add("c");
13         co.add("d");
14         co.add("e");
15 
16         //使用Collection的forEach方法
17         co.forEach(s -> System.out.println(s));
18 
19 
20         //使用foreach
21         System.out.println("----------");
22         for (String s : co
23         ) {
24 
25             System.out.println(s);
26         }
27 
28         //使用Iterator迭代器
29         System.out.println("----------");
30         Iterator<String> iterator = co.iterator();
31         while (iterator.hasNext()) {
32             String s = iterator.next();
33             System.out.println(s);
34             //使用迭代器删除
35             iterator.remove();
36         }
37 
38     }
39 }

 

posted @ 2019-09-24 21:24  AriX_Wow  阅读(336)  评论(0)    收藏  举报