容器 是一个集合
之前学过的容器是:数组
弊端:只能存指定数据类型 数组的长度不可改变
List Set Map
List 接口
实现类:ArrayList LinkedList Vector
参数传对象,删除这个对象。返回 Boolean
参数传下标,
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class EList {
public static void main(String[] args) {
System.out.println("Hello World!");
List list = new ArrayList();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add(null);
list.add(114514.1919810);
list.add("?");
list.add("?");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("--------------------");
Object o = list.get(0);
System.out.println(o);
System.out.println(list);
System.out.println("--------------------");
//在指定地点插入元素
list.add(1,123312312);
System.out.println(list);
//替换
list.set(2,"BBBB");
System.out.println(list);
System.out.println("--------------------");
//删除
list.remove(2);
System.out.println(list);
System.out.println("--------------------");
//删除指定元素
list.remove("A");
System.out.println(list);
System.out.println("--------------------");
//删除指定位置的元素
list.remove(1);
System.out.println(list);
System.out.println("--------------------");
//删除所有元素
//list.clear();
//System.out.println(list);
//System.out.println("--------------------");
//判断是否包含某个元素
System.out.println(list.contains("A"));
System.out.println(list.contains(123312312));
System.out.println(list.contains(null));
System.out.println("--------------------");
//判断是否为空
System.out.println(list.isEmpty());
System.out.println("--------------------");
//删除找到的第一个元素
list.add("B");
list.add("B");
list.add(3,"B");
System.out.println(list);
list.remove("B");
System.out.println(list);
System.out.println("--------------------");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("--------------------");
for(Object item:list){
System.out.println(item);
}
System.out.println("--------------------");
Iterator it= list.iterator();//获取了一个迭代器
while (it.hasNext()){
System.out.println(it.next());
}
//ArrayList扩容方式 初始容量10
//扩容 1.5倍
}
}
ArrayList 和inkedList性能比较
ArrayList 是通过数组存储数据的 查找数据非常快
LinkedList查找速度慢,通过双向检索的方式优化检索速度
ArrayList插入和删除慢
LinkedList插入和删除快
ArrayList 扩容方式
初始容量: 10
扩容 1.5倍
可以自己设置容量大小: ArrayList list=new ArrayList<>(50);
LinkedList:
双向检索:存储数据方式不同 链表
public class EB {
static {
//静态代码块 一个类的静态代码块只会执行一次
//加载类对象时执行
System.out.println("屎 静态代码块");
}
{
//成员代码块
//成员代码块在构造方法之前运行
System.out.println("屎 成员代码块");
}
EB(){
System.out.println("构造方法");
}
EB(int num){
System.out.println("带参数的构造方法");
}
public static void main(String[] args) {
new EBSON();
}
}
//**************************
class EBSON extends EB {
static {
//静态代码块 一个类的静态代码块只会执行一次
//加载类对象时执行
System.out.println("son屎 静态代码块");
}
{
//成员代码块
//成员代码块在构造方法之前运行
System.out.println("son屎 成员代码块");
}
EBSON(){
System.out.println("son构造方法");
}
EBSON(int num){
System.out.println("son带参数的构造方法");
}
public static void main(String[] args) {
new EB();
new EB(12);
}
}