概述:
在之前的学习之前,我们都是使用数组进行储存.
数组在创建的时候就已经确定了长度.
由于数组的长度一经创建就被确定,所以增加删除数组内的元素时,需要创建一个新的数组来接收元素
集合和数组概念相似,也是用于储存多个引用变量的
集合的长度时可变的
集合还提供了排序,比较等方法,方便用户对集合进行操作
集合本质上是数组的封装类,最终存储数据还是数组
List有序集合
List是java中的一个接口,父类是Collection,它有各种不同的底层实现
ArrayList
LinkedList
Vector
ArrauList的基本使用集合的创建,增加,获取和删除
ArrayList list = new ArrayList();
//给集合中放入对象
list.add(1); //0
list.add("aa");//1
list.add(true);//2
list.add(new Student("小王",15));
//获取数据
Integer i = (Integer) list.get(0);
String aa = (String) list.get(1);
Boolean flag = (Boolean) list.get(2);
Student student = (Student) list.get(3);
list.remove(2);//删除
System.out.println(i);
System.out.println(aa);
System.out.println(flag);
System.out.println(student.toString());
集合的遍历
ArrayList list = new ArrayList();
//给集合中放入对象
list.add(1); //0
list.add("aa");//1
list.add(true);//2
list.add(new Student("小王",15));
//获取数据
Integer i = (Integer) list.get(0);
String aa = (String) list.get(1);
Boolean flag = (Boolean) list.get(2);
Student student = (Student) list.get(3);
list.remove(2);//删除
System.out.println(i);
System.out.println(aa);
System.out.println(flag);
System.out.println(student.toString());
关于泛型
List有三种中实现,都继承了List接口只是在实现上不同,在使用上一模一样
LinkedList是通过链表,增加和删除速度快,查询速度慢
ArrayList是查询快,增加和删除慢
Vector是都慢,但是他线程安全
-
泛型指的是可以将集合中的数据定义成指定的类型,在获取结果的时候不需要强制类型转换
Listlist = new ArrayList(); //List linkedList = new LinkedList(); list.add(1);//只能存放Integer类型 //list.add("a"); Integer i = list.get(0);//获取数据的不需要进行类型转换
-
泛型的定义
-
一个泛型参数定义
public class MyArrayListImpl
{ public void add(T obj){ } public T get(int i){ return null; } } -
多个泛型参数的定义
public class MyConvert
{ public D to(S a){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); return (D) simpleDateFormat.format(a); } } -
目录
概述:
List有序集合



