Java Set, List的区别 .ArrayList, LinkedList的区别. Collections类 ,Collection接口的区别

学习这个之前我们先来看一下数组有什么缺陷:

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]

猜你喜欢

转载自blog.csdn.net/qq_40207976/article/details/79536947