迭代器,泛型,可变参数:
- 具体见链接: 迭代器,泛型,可变参数
Collection
集合概述:
- 集合作为容器用来存储,管理大量的对象(引用),这些集合内部用了不同的数据结构来存储元素,这些数据结构的不同导致了每种集合的增删改查效率不同。
- 内部存储的只能是“对象引用”,子类使用多态存储基本数据类型时,泛型需要使用他们对应的包装类。
数据结构会另开一篇。
Java常用集合体系:
Collection接口的常用方法
由于Collection是一个接口,所以该类中全部都是抽象方法,调用时会使用多态(父类型引用指向子类型对象)。主要了解这些方法的作用。
增:
public boolean add(E e);//把给定的对象添加到集合中
删:
- public void clear();//清空集合中所有元素。
- public boolean remove(E e);//把给定的对象在集合中删除
改:【无】
查:
- public boolean contains(Object obj);//判断当前集合是否包含给定元素
- public boolean isEmpty();//判断集合是否为空
- public int size();//返回当前集合元素的个数。
- public Object[] toArray();//把集合中的元素储存在数组中。
- public Iterator iterator();//获取一个迭代器,用于遍历集合元素
代码演示:
package Collection集合的增删改查Test;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//多态,父类型引用指向子类型对象
Collection<String> list = new ArrayList<String>();
//增:
//调用子类ArrayList重写的add方法:向集合中添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("冯七");
for (String s:list) {
System.out.println(s);
}
//删:
//clear()删除集合中所有元素:
//list.clear();
System.out.println(list.size());
//remove(E e):将给定的元素在集合中删除。返回boolean值
list.remove("张三");
System.out.println("移除后元素有:");
for(String s:list){
System.out.println(s);
}
//改【无】
//查:
//contains(Object obj):查询给定元素是否存在集合中,返回boolean
boolean boo = list.contains("李四");
System.out.println(boo);
//isEmpty():判断集合是否为空,返回boolean;
boo = list.isEmpty();
System.out.println(boo);
//size()返回集合中元素的个数:
int sum = list.size();
System.out.println(sum);
//toArray():把集合元素储存在数组中;返回一个Object[]数组
Object[] obj = list.toArray();
for (int i = 0; i <obj.length ; i++) {
System.out.println(obj[i]);
}
}
}
List(接口)集合-继承Collection接口
List继承了Collection接口的方法
List集合的特点:
1).有序的;
2).可以存储重复元素;(不验证元素的重复性)
3).可以通过索引访问;(因为有序的)
4).
新增方法:
- 增:public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
- 删:public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
- 改:public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
- 查:public E get(int index) :返回集合中指定位置的元素。
共同特点是都带了“索引”的参数!
ArrayList集合:
- 底层是数组。
- 扩容机制:扩容后是原容量的1.5倍,初始容量为10.
- 没有新增方法。使用的都是List和Collection中的定义的方法
- 作用跟“数组”一样,作为“容器”,存储、管理大量的“对象(引用)”。
- 查询效率高,增删效率低
常用方法
1).增:
1).public boolean add(E e):向集合添加一个元素。返回值:对于ArrayList,永远返回true。
2).public void add(int index,E e):向集合的index位置插入元素e。
2).删:
3). public boolean remove(Object o):从集合中移出参数o。删除成功返回true,否则返回false。
4). public E remove(int index):从集合中移出index位置上的元素。
3).改:
5).public E set(int index,E e):用e替换当前集合中index位置上的元素,将“被替换的元素返回”。
4).查:
6). public E get(int index):获取index位置上的元素;
7). public int size():获取集合大小。和get()方法结合,就可以对集合进行遍历了。
代码演示:
测试类
package com.itheima.demo02_ArrayList概述;
import java.util.ArrayList;
public class Demo02 {