1.数组封装
1.1需求
数组操作,相对还是比较复杂的,也不能做添加和删除操作,当需要添加和删除的时候需要新建数组,复制数组,或者元素移位,比较麻烦
所以 我们对这些添加和删除操作进行封装
1.2编码
Array arr=new Array(); 创建对象
System.out.println(arr.size); 元素个数
arr.add(值); 添加
arr.set(0,"张三"); 更改
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i)); 获取
}
arr.remove(值); 删除
2.集合
2.1概述
Java集合是使程序能够存储和操纵元素不固定的一组数据。 所有Java集合类都位于java.util包中。
如果集合中存放基本类型,一定要将其“装箱”成对应的“基本类型包装类”
2.2继承体系
Collection 是集合,两个直接子接口是List和set
List 特性 : 有序 可重复,保证数据的添加顺序和取出顺序一致
Set 特性 : 无序 不可重复,不能保证数据的添加和取出顺序一致
List 有三个子类 :
ArrayList : 底层是数组,查询和更改效率极高
LinkedList : 底层是双向链表,添加和删除效率要高一些
Vector : 底层也是数组,是线程安全,已废弃,不推荐使用,已被ArrayList代替
Set有两个子类:
HashSet : 底层是散列表
TreeSet : 底层是二叉树
2.3Collection
Collection作为集合类的父类,所以,collection中的方法,是所有集合类都有的方法
2.3.1使用方法
System.out.println(collection.isEmpty()); 判断是否为空
System.out.println(collection.size()); 已有元素个数
collection.add(1); 如果添加一个基本类型,则会进行自动装箱为对应的包装类类型,然后
collection.add("张三"); 再发生多态转型为Object类型
coolection.remove("张三"); 删除指定元素,不是索引,是根据数据删除
Object[] arr=collection.toArray();
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]); 转换为数组
}
collection.clear(); 清空集合中的数据
2.3.2Iterator
迭代器:有时又称光标,是程序设计的软件设计模式,可在容器对象上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节
迭代器是一种模式,它可以使遍历和被遍历的对象分离,不用再管是什么数据类型,如何存储的
只要拿到迭代器对象,就可以进行遍历
collection中提供了一个iterator()方法,用于获取迭代器对象
集合.iterator();
迭代器中有三个方法:
1.boolean hasNext():判断游标下是否还有元素,默认指向顶端,并不指向第一个元素
2.E next():将迭代器游标向下移动一位,并取出该元素
3.remove():删除当前执行的元素,会把集合中的也删除
迭代器一旦创建,集合不能添加和删除,如果添加和删除了,需要重新生成迭代器
增强for循环forEach就是迭代器的简写方式
Iterator it=c.iterator(); 生成迭代器
迭代器使用完后,想要再次使用,需要重新生成