学习这个之前我们先来看一下数组有什么缺陷:
1、数组的长度难以扩充这是数组的缺陷。
2、数组中每个元素的数据类型都必须是一样的。
由于数组的这两个缺陷的存在,所以我们引入了 Set 和List。
首先我们来看一下Set和List的异同:
1、它们都实现了Collection接口。
2、Set不区分元素的顺序,不允许有重复的元素。
3、List元素按顺序排序,允许有重复的元素。
所以Set集合的元素是没有下标 标识的,而List集合就可以有下标来标识某个元素。
ArrayList和LinkedList的异同:
1、两者都实现了List这个类。
2、两者的存取速度不同,ArrayList存取速度快,删除 插入 速度慢。反之 LinkedList存取速度慢,删除 插入 速度快。
3、两者的数据结构不同:ArrayList底层是基于数组的数据结构,LisnkedList底层是基于双向链表的数据结构。
Collections是Collection的子类,Collections实现了Collection的接口。Collections提供了一些静态方法实现了基于List容器的 一些常用方法。
以下是Collections的一些常用的静态方法的实例:
import java.awt.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Set;
public class ArrayListTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList s = new LinkedList();
for (int i = 0; i < 6; i++) {
s.add("a"+i);
}
System.out.println("链表的输出结果:"+s);
Collections.shuffle(s);//打乱排序
System.out.println("打乱排序"+s);
Collections.sort(s);//升序
System.out.println("升序后的结果:"+s);
Collections.reverse(s);//倒序
System.out.println("倒序后的结果:"+s);
}
}
输出结果是:
链表的输出结果:[a0, a1, a2, a3, a4, a5]
打乱排序[a2, a0, a4, a1, a5, a3]
升序后的结果:[a0, a1, a2, a3, a4, a5]
倒序后的结果:[a5, a4, a3, a2, a1, a0]