- 集合
- 对于集合的理解,集合是一个容器,用于存储和管理其它对象的对象
- 集合,首先了解所有集合的父接口----collection
- 特点:存储任意object元素
- 方法
- boolean add(Object o) // 把元素o添加到集合中,成功true,否则false
- boolean addAll(Collection c) //把集合c中的所有元素 添加到当前集合中
- void clear() // 清空当前集合中的所有元素
- boolean contains(Object o) //判断对象o 在当前集合中是否存在
- boolean containsAll(Collection c) //判断集合c中的元素 在当前集合中是否都存在
- boolean isEmpty() // 判断当前集合中的元素个数是否为0
- boolean remove(Object o) // 把对象o 从当前集合中删除,返回是否成功
- int size() // 获取集合元素的实际个数
- Object[] toArray() // 把集合转成对应的数组
- list接口
- 特点:存储任意object元素,有序,有下标元素内容可以重
- 方法:
- 继承父接口Collection中的所有方法
- void add(int idx, Object obj) //在指定下标idx位置 插入元素obj
- Object get(int idx) // 获取指定下标idx位置上的元素
- int indexOf(Object o) // 返回o在当前集合中下标,如果不存在 返回-1
- Object remove(int idx) //删除指定下标idx位置的元素,并且返回该元素
- Object set(int idx,Object o) //修改idx位置的元素为o,并且返回修改前的元素
- List subList(int beginIdx, int toIdx)//截取子集合,从下标beginIdx(含)到toIdx(不含)
- 遍历:下标遍历,forEach遍历,迭代遍历
- 如下:
package com.lvsling.test;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class TestArrayList { public static void main(String[] args) { //student--有三个属性,name,age,clazz List<Student> list = new ArrayList<Student>();
Student s1 = new Student("jerry",20,"1"); list.add(s1); list.add(new Student("tom",18,"2")); list.add(new Student("mike",15,"1"));
// 下标遍历 for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } System.out.println("-------------------------");
// forEach遍历 for(Object obj : list){ Student s = (Student)obj; System.out.println(s.getName()); } System.out.println("-------------------------");
// 迭代遍历 Iterator it = list.iterator(); // 获取集合对象的迭代器 while(it.hasNext()){ // 判断是否有下一元素 Object obj = it.next(); // 获取下一元素 System.out.println(obj); } }
} |
- list实现类
- ArrayList
- 数组实现,可变长数组
- 线程不安全,效率高
- 查询快,增删慢
- Vector
- 数组实现,可变长数组
- 线程安全,效率高
- LinkedList
- 链表实现
- 查询慢,增删快
- 泛型集合
- 类型安全的集合,限制集合元素的类型,必须是相同的。
- 泛型类型,前后一致
- 泛型类型必须是引用类型(基本类型使用包装类)
- 拓展与提升
- 工具类
- Collections类,是工具类,提供了一组static方法,用于 对集合进行操作。
- 如:
- Collections.sort(list) // 按升序排----注意:集合元素类型 必须实现java.lang.Comaparable接口。
- Collections.reverse(list); // 集合元素反转
- Collections.shuffle(list); // 随机显示集合元素