为什么要使用集合类?
集合类就是用于存储多个数据的类 在Java基础中我们学习了数组,而数据时可以存储多个数据的,为什么还要使用集合?
数组的特点
-
用于存放多个数据
-
数组中的数据的数据类型是相同的
-
数组的长度固定
-
数组的操作需要开发人员自己定义相关操作算法
集合类的特点
-
集合类中可以存放多个数据
-
集合类中存放的数据的类型的任意类型(内部类型为Object类型,所以可以存放任意类型)
-
集合类的长度都是可变的
-
集合类中提供了关于这类集合的常用操作方法,开发人员可以通过这些方法实现对集合的常见操作
集合类不是一个类,而是一套接口和类的统称
Java中集合类的类结构
Java中的集合类根据存储方式不同分为两大类集合
-
基于Collection接口的
线性
集合Collection接口下有两个子接口,分别对应不同的线性集合
1.List接口的特点
1.有序的集合(进入到集合中顺序) 2.可以存放重复数据的集合
List接口的的实现类:
1.ArrayList 2.LinkedList 3.Vector
2.Set接口
1.无序的集合(不保证集合中元素的顺序) 2.不允许存放重复数据的集合
Set接口的实现类: 1.HashSet 2.TreeSet
-
基于Map接口的
key-value
映射对集合
基于List接口的ArrayList类的使用
ArrayList底层是基于动态数组实现的
ArrayList的特点
1.ArrayList在使用时,查找其中的元素效率是比较高的,数组有下标,可以通过下标直接锁定到一个元素
ArrayList在插入或移除元素时效率低(内存中要移位)
ArrayList常用API
-
创建ArrayList对象
//创建ArrayList集合类对象 ArrayList arrayList = new ArrayList();
-
add(element):向ArrayList的尾部追加一个元素
//向ArrayList的尾部追加元素 arrayList.add("aaa"); arrayList.add(20); arrayList.add('a'); arrayList.add(true); arrayList.add(20.5); 3.add(index,element):向集合中的某个位置插入一个元素 //向ArrayList的某个位置插入元素 arrayList.add(2,"str");
4.get(index):根据下标获得该下标对应的元素,默认返回Object类型(根据自己的需要转换具体类型)
//根据下标获得一个元素 String str= (String) arrayList.get(0); System.out.println(str);
</