1.集合框架
java语言的设计中对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为java集合框架。java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率
Java知识(集合框架和List)
Java知识(集合框架和List)
三类集合接口:list、set、map
两类集合接口:collection、map
集合接口的区别:
collection 接口存储一组不唯一,无序的对象
list 接口存储一组不唯一,有序(插入顺序)的对象
set 接口存储一组唯一,无序的对象
map 接口存储一组键值对象,提供key(键)到value(值)的映射
Java知识(集合框架和List)
2.List接口的实现类
ArrayList:ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高,适合用来查看。
0 1 2 3 4 5
aaaa bbbb cccc aaaa eeee dddd
LinkedList:采用链表存储方式。插入、删除元素时效率比较高。
Java知识(集合框架和List)
语法格式:左边接口 右边实现类(多态)
例如:List<Object> list=new ArrayList<>();

3.ArraryList集合类
List接口常用方法
方法名 说明
boolean add(Object o) 在列表的末尾顺序添加元素,起始索引位置从0开始
void add(int index,Object o) 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数直之间
int size() 返回列表中的元素个数
Object get(int index) 返回指定索引位置处的元素。取出的元素时Object类型,使用前需要进行强制类型转换
boolean contains(Object o) 判断列表中是否存在指定元素
boolean remove(Object o) 从列表中删除元素
Object remove(int index) 从列表中删除指定位置元素,起始索引位置从0开始

Java知识(集合框架和List)
在删除char字符时,需要将char字符强制转换为character型
list.remove((Character)'a');
public class Ch01 {
public static void main(String[] args) {
//左边:接口 右边:实现类 多态
List<Object> list=new ArrayList<>();
//接口定义的方法
//在List中追加一条数据
list.add(1);
list.add('a');
list.add(true);
//访问某个数据
System.out.println(list.get(2));
//在指定下标位置插入元素,下标位置必须介于0到个数之间
list.add(1, "abc");
//ArraryList中重写了toString方法
System.out.println(list.toString());
//size方法:获取元素个数
System.out.println(list.size());
//remove方法:删除某个元素
//可以通过传入具体的元素值类删除元素,返回结果为boolean型
System.out.println("删除的结果为"+list.remove((Character)'a'));
System.out.println(list.toString());
//也可以通过下标来删除元素 返回Object类型
System.out.println("被删除的元素是:"+list.remove(2));
System.out.println(list.toString());
//contains方法:判断是否存在指定元素值,返回型为Boolean
System.out.println(list.contains("abc"));
}
}
4.LinkedList集合类
常用方法:

方法名 说明
void addFirst(Object o) 在列表的首部添加元素
void addLast(Object o) 在列表的末尾添加元素
Object getFirst() 返回列表中的第一个元素
Object getLast() 返回列表中的最后一个元素
Object  romoveFirst() 删除并返回列表中的第一个元素
Object  removeLast() 删除并返回列表中的最后一个元素

5.list集合常用方法
addAll( ) 在集合中添加一个集合
isEmpty( ) 判断集合是否为空,如果为空返回true,不为
空返回false
clear 清空数据,保留对象,重置list
indexOf( ) 返回元素第一次出现位置的下标
lastIndexOf( ) 返回元素最后一次出现位置的下标
removeAll( ) 从集合中删除另一个集合所包含的元素
toArray( ) 可以把集合转换成数组
Arrays.asList( ) 数组转换成集合


public class Ch03 {

public static void main(String[] args) {
// addAll 在集合中添加一个集合
List<Object> list = new ArrayList<>();
Set<Object> set = new HashSet<>();
set.add(8);
list.add(1);
list.add(2);
list.add(3);
List<Object> list2 = new LinkedList<>();
list2.add(0);
list2.addAll(list);
list2.addAll(set);
System.out.println(list2);
System.out.println(list2.size());
// isEmpty() 判断集合是否为空,如果为空返回true,不为空返回false
// 判断一个集合是否为空
// if(list!=null && !list.isEmpty())
// clear清空数据,保留对象,重置list
// list2.clear();
// list2=null;
// System.out.println(list2);
// System.out.println(list2.size());
// indexOf()返回元素第一次出现位置的下标
System.out.println(list2.indexOf(1));
// lastIndexOf()返回元素最后一次出现位置的下标
System.out.println(list2.lastIndexOf(1));
// removeAll 从集合中删除另一个集合所包含的元素
list2.removeAll(list);
System.out.println(list2);
System.out.println(list2.size());
// toArray 可以把集合转换成数组
Object[] arr = list2.toArray();
System.out.println(Arrays.toString(arr));
// Arrays.asList 数组转换成集合
System.out.println(Arrays.asList(arr));
}
}
6.如何遍历List集合
方法1:通过for循环和get()方法配合实现遍历
方法2:通过迭代器Iterator实现遍历
所有集合接口和类都没有提供相应的遍历方法,而是由Iterator实现集合遍历
collection接口的iterate()方法返回一个Iterator,然后通过Iterator接口的两个方法可实现遍历
boolean hasNext():判断是否存在另一个可访问的元素
Object next():返回要访问的下一个元素





相关文章: