集合
1、层次
1.接口 Collection
1 接口List 列表
实现类 ArrayList 特点:实现了可变数组,有序,可引用索引。 定义方式:List<泛型>集合名称=new 实现类<泛型>。
LinkeList 特点:以链表的形式保存数据,修改和删除速度快,随机存取速度慢
添加数据 .add a.add(对象) (自动添加在集合末尾)
a.add(索引,对象) (在索引位置添加对象)
查询数据 .indexOf a.indexOf(对象) (查询返回的是首个找到的索引号)(不能重新new新对象)
移除数据 .remove a.remove(索引)
清除数据 .clear a.clear
获取数据 .get a.get(索引) 获取该索引值的对象数据
修改数据 .set a.set(索引,对象) 修改索引位置的对象
判断是否存在 .contains a.contains(对象) 返回布尔类型的值
获取长度 .size a.size()
遍历 for循环
foreach循环
迭代器 Iteration<泛型>迭代器名称=集合对象.iteration()
2 Set 集合(没有顺序和索引,不能存放重复数据,利用哈希值)
Set<Preson>a=new HashSet<>();
例: Preson a = new preson(对象)
添加:add
长度:size
移除:remove(对象)
是否存在:contains
遍历:能用foreach和迭代器进行遍历,无法提取单个数据
HashSat(可以放空值)
TreeSet(通过序号对内容进行排序的集合,不能放空值,只能支持可以排序的对象)
3 迭代器(既一个指针)(获取迭代器时,指针指向第一条记录的前面,而不是第一个记录)(无法取某个 值,但是可以遍历)
Itreation<Preson> b = a.interation();
b.hasNext() 判断能否移动指针(返回的是布尔型数据)(可以作为循环的条件)
b.next() 移动指针(需要先进行判断才能移动)
例:while(it.hasNext) (先判断是否有下一项)
{Person a = b.next()} (移动指针并获取数据赋给a)
a.remove 删除数据
2. Map(映射)
Map<String,String> a = new HashMap<>();
添加数据 a.put(序号,对象值); (当序号存在时为覆盖,不存在时添加新值,所以序号尽量不重复,但对象值可以重复)(无序,不能引用)
获取数据 a.get(序号);
长度 a.size
移除 a.remove
查询序号是否存在 a.contaisKey(索引)
查询值是否存在 a.contaisValue(值)
遍历 将序号编程集合,然后根据遍历序号来遍历值
HashMap (序号可以为空)
TreeMap (通过序号对值进行排序的集合,不能放空值,只能支持可以排序的对象)
2、泛型 <>括号内 (类型安全,不需要强转,使用方便)
例: List<类型> a = new ArrayList<>();
1.泛型类 在类名和()之间加入<> 即表示泛型,可以添加多个 (静态方法和catch中不能使用类的泛型)
例: public class aaa <b,a>{……}