前言
学习顶层接口/抽象类中的共性方法;
底层不是接口就是抽象类,无法创建对象使用,需要使用底层的子类创建对象使用。
第一章Collection接口
Collection接口树状关系图
Collection接口
/ \
/ \
/ \
List接口 Set接口
/ | \ / \
/ | \ / \
/ | \ / \
Vector ArrayList LinkedList TreeSet HashSet
集合 集合 集合 集合 集合
\
\
LinkedHashSet
集合
Collection接口
Collection定义所有单列集合中的共性方法,所有的单列集合都可以使用共性方法(没有带索引的方法)
List接口
a.有序的集合;
b.允许存储重复的元素;
c.有索引,可以用for循环遍历
Set接口
a.不允许存储重复元素;
b.没有索引,不可以用for循环遍历;
c.存取元素的顺序可能会不一致。
第二章 迭代器
2.1 迭代器
java.util.Iterator接口:迭代器 --> 对集合进行遍历
常用的两种方法:
boolean hasNext() : 判断集合中有元素可以迭代,返回true,没有就false;
E next() : 返回迭代(取出集合中)的下一个元素。
2.2 使用迭代器
Iterator迭代器是一个接口,无法直接使用,需要使用Iterator接口的实现类对象。
Collection接口中有一个方法iterator(),该方法返回的是迭代器的实现类对象。
Iterator<E> iterator() // 返回在 collection 的元素上进行迭代的迭代器
可以判断和取出集合中的元素
a.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态);
b.使用Iterator接口中的方法hasnext()判断是否还有下一个元素;
c.使用Iterator接口中的方法next取出集合中的下一个元素。
! Iterator接口是泛型的,迭代器的泛型随集合的泛型。
2.3 实例
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* Create By coder_tao on 2020/6/29 0029
* 迭代器
* 1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
* 2.使用Iterator接口中的方法hasnext()判断是否还有下一个元素
* 3.使用Iterator接口中的方法next取出集合中的下一个元素
*
*/
public class IteratorDemo {
public static void main(String[] args) {
// 创建一个集合对象
// 多态
Collection<String> coll = new ArrayList<>();
// 使用add()方法添加数据到集合中
// 西科东艾,北卡南麦
coll.add("科比");
coll.add("艾弗森");
coll.add("卡特");
coll.add("麦迪");
// 多态
// 获取迭代器的实现类对象,并且将指针(索引)指向集合的-1索引
Iterator<String> iterator = coll.iterator();
// 判断里面是否还有元素
boolean b = iterator.hasNext();
System.out.println(b); // true
// 不知道集合中的元素数量 -> while
while(iterator.hasNext()) {
/*
* iterator.next()
* a.取出下一个元素
* b.指针向后移动一位
*/
String e = iterator.next();
System.out.println(e);
}
System.out.println("---------------------------------");
// 使用for循环遍历集合
// iterator2.hasNext()就可以直接判断元素,不需要再用步进表达式
for(Iterator<String> iterator2 = coll.iterator(); iterator2.hasNext(); ){
String e = iterator2.next();
System.out.println(e);
}
}
}
运行结果
true
科比
艾弗森
卡特
麦迪
---------------------------------
科比
艾弗森
卡特
麦迪
第三章 Collections工具类
3.1 常用功能
java.utils.Collections 是集合工具类,用来对集合进行操作:
// 常用一些方法
// 往集合中添加一些元素
public static <T> boolean addAll(Collection<T> c,T... elements) {
}
// 打乱集合顺序
public static void shuffle(List<?> list) {
}
// 将集合中的元素按照默认规则排序
public static <T> void sort(List<T> list) {
}
// 将集合中元素按照指定规则排序
public static <T> void sort (List<T> list, Comparator<? super T>) {
}
3.2 代码示例
addAll()、shuffle()、sort()的简单用法:
代码示例:
/*
Collections工具类
public static <T> boolean addAll(Collection<T> c,T... elements) {}
public static void shuffle(List<?> list) {}
public static <T> void sort(List<T> list) {}
public static <T> void sort (List<T> list, Comparator<? super T>) {}
*/
import java.util.ArrayList;