1.1 目录
1. 为什么要使用框架?
2. 集合架构有哪些?
3. List集合
4. ArrayList集合
5. LinkedList集合
6. Set集合
7. HashSet集合
8. TreeSet集合
9. Map
10. HashMap集合
11. TreeMap集合
1.2 为什么使用集合?
1.数组的缺陷;
定容:一单数组定义好,它们的长度就无法改变。(如果需要改变长度会很麻烦)
2. 我们可以定义一个长度可以改变的容器。
例:可变容器,MyArray04类 可变容器
public class MyArray04 {
private Object[] arr;
private int size;
public MyArray04(){
this(3);
}
public MyArray04(int size) {
if (size < 0){
throw new RuntimeException("数组长度有误");
}
arr = new Object[size];
}
public void addData(Object a){
if (size >= arr.length){
Object[] newArr = Arrays.copyOf(arr , size * 2);
arr = newArr;
}
arr[size] = a;
size++;
}
public Object setData(int b ){
if (b > arr.length ||b < 0){
throw new ArrayIndexOutOfBoundsException("长度有误");
}
Object c = arr[b];
return c;
}
}
ArratTest测试类
public class ArrayTest {
public static void main(String[] args) {
MyArray04 myArray04 = new MyArray04();
myArray04.addData("java01");
myArray04.addData("java02");
myArray04.addData("java03");
myArray04.addData("java04");
myArray04.addData("java05");
myArray04.addData("java06");
myArray04.addData("java07");
Object a = myArray04.setData(2);
System.out.println(a);
}
}
1.3 集合的框架
1.4 List集合ArrayList类
1.4.1 创建数组
List list = new ArrayList();//创建数组,如果不指定长度则为10
1.4.2添加操作
//添加操作,可以添加任何类型
list.add("java01");
list.add("java02");
list.add("java03");
list.add("java04");
list.add("java05");
list.add(1,"刘德华");//在下标为一的位置添加数据
list.add(new Date());//添加时间数据
//创建新数组,准备添加数组
List list1 = new ArrayList();
list1.add("刘德华01");
list1.add("刘德华02");
list.add(list1);//添加list1数组
System.out.println(list);
1.4.3删除操作
//删除操作
list.remove(1);//删除下表为1的数据
System.out.println(list);
list.clear();//清空数组
System.out.println(list);
1.4.4修改操作
//修改操作
list.set(1,"刘德华");//将下标为1的数据修改为刘德华
System.out.println(list);
1.4.5 查找操作
//查找操作
System.out.println(list.get(1));//查找下标为1的元素,
System.out.println(list.size());//获取数组长度
System.out.println(list.contains("java03"));//判断java03这个元素是否在其中
System.out.println(list.indexOf("java03"));//判断java03元素第一次出现的位置
//foreach遍历
for (Object a : list){
System