1.List集合(接口)
java.util.List接口 extends Collection接口
List接口的特点:
1.有序的集合,存储元素和取出元素的顺序是一致的
2.有索引,包含了一些带索引的方法
3.可以存储重复的元素
注意:
操作索引的时候,一定要防止索引越界引起异常
2.LinkedList集合(接口)
java.util.LinkedList 集合 imllentments List接口
Linkedlist 集合的特点:
1.底层是一个链表结构,查询慢,增删快
2.里面包含了大量操作首位元素的方法
3.Set(接口)
java.util.Set接口 extends Collection接口
Set 接口的特点;
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,不能使用普通的for循环对集合进行遍历
java.util.HasSet集合 implements Sets接口
HasSet特点:
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,不能使用普通的for循环对集合进行遍历
3.是一个无序的集合,存储元素与取出元素说我顺序可能不一样
4.底层是一个哈希表结构(查询速度非常的快)
4.LinkedHashSet集合
Java.util.LinkedHashSet集合 extends Hashset集合
LinkedHashSet集合特点:
底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序
!](https://img-blog.csdnimg.cn/20200906223903531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTc5Njc3Mg==,size_16,color_FFFFFF,t_70#pic_center)
5.可变参数的概念
可变参数:是JDK1.5之后出现的新特性
使用前提:
当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数
使用格式:定义方法时使用
修饰符 返回值类型 方法名(数据类型…变量名){方法体}
可变参数的原理:
可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数
传递的参数个数,可以是0个(不传递),1个,2个…多个
6.Collections集合工具类
java.util. Collections是集合工具类,用来对集合进行操作.部分方法如下:
- public static boolean addAll(Collection c,T… elements);往集合中增添元素
-public static void shuffle(List <?> List)打乱顺序:打乱集合顺序
7.HashSet集合
特点:集合中不能存储相同的元素,HashSet集合会重写本类中Object类中的hashcode和equals方法,先对对象的地址值进行判断,如果地址值相同的话,会出现哈希冲突,接着判断存储的元素,如果equals判断为true,则该相同元素被咔掉
先定义一个Person类(对它的HashSet和equals以及toString方法)
创建测试类:
java.util. Collections是集合工具类,用来对集合进行操作.部分方法如下:
如果自己定义的类要进行排序,需要让该类 public class 类( < E > ) implments Comparable,然后让她重写重写
// Object类中的compareTo方法,意味着重新设定排序规则
定义一个Person类