List接口
实现类:ArrayList(数组实现) LinkedList(链表实现) Vector
List list = new ArrayList();
//ArrayList 扩容方式
//初始容量 10
//扩容系数 1.5
List list = new LinkedList();
ArrayList和LinkedList性能比较:
ArrayList是通过数组存储数据的,查找数据非常快,但是ArrayList插入和删除速度慢
LinkedList查找速度慢,它通过双向检索优化检索速度;LinkedList插入和删除快
List中常用方法
添加元素 .add(可选地址,元素)
list.add("Abc");
list.add(12);
list.add(null);
list.add(33.33);
//list [Abc,12,null,33.33]
list.add(4,44);
list.add(1,"D");
//list [Abc,D,12,null,33.33,4]
将给定集合中的所有元素添加到 arraylist 中 .addAll(可选地址,集合)
//list [Abc,D,12,null,33.33,4]
//listA [5,6,7]
list.addAll(listA);
//list [Abc,D,12,null,33.33,4,5,6,7]
获取元素 .get(地址)
//list [Abc,D,12,null,33.33,4,5,6,7]
Object obj = list.get(3);
System.out.println(obj);//null
设置某一地址元素 .set(地址,元素)
//list [Abc,D,12,null,33.33,4,5,6,7]
list.set(3,0);
//list [Abc,D,12,0,33.33,4,5,6,7]
判断字符串中是否包含指定的字符或字符串 .contains(元素)
//list [Abc,D,12,0,33.33,4,5,6,7]
boolean bool = list.contains(33.33);//true
判断是否包含另一个集合中的所有元素 .containsAll(集合)
//list [Abc,D,12,0,33.33,4,5,6,7]
//listA [5,6,7]
bool = listA.containsAll(list);//true
删除找到的第一个元素 .remove(参数)
参数传删除对象时,删除这个对象元素,返回Boolean值,成功true,失败false
obj = list.remove("A");//false
参数传下标时,删除下标位置对象,返回被删除对象
obj = list.remove(2);//"12"
外部类
public class EasyClass {
}
class Test{//外部类default或public修饰
EasyInnerClass.InnerA a = new EasyInnerClass.InnerA();
}
内部类
静态内部类
public class EasyInnerClass {
public static class InnerA{ //静态内部类
}
}
成员(对象)内部类
public class EasyInnerClass {
private class InnerB{ //成员(对象)内部类
}
}
局部内部类
public class EasyInnerClass {
public void inner(){
class InnerC{ //局部内部类
}
new InnerC();
}
}
匿名内部类(对象)
public class EasyInnerClass {
AbstractClass ac=new AbstractClass(){ //匿名内部类(对象)
public void method(){}
};
}
abstract class AbstractClass{
public abstract void method();
}
代码块(执行顺序)
public class EasyBlock {
static{
//静态代码块 一个类的静态代码块只会执行一次
//加载类对象时执行
System.out.println("父类--静态代码块");
}
{
//成员代码块 每一次new对象时执行
//成员代码块在构造方法之前运行
System.out.println("父类--成员代码块");
}
EasyBlock(){
System.out.println("父类--构造方法");
}
EasyBlock(int num){
System.out.println("带参数构造方法");
}
public static void main(String[] args) {
new EasySon();
//1.父类静态代码块
//2.子类静态代码块
//3.父类的成员代码块
//4.父类的构造方法
//5.子类成员代码块
//6.子类的构造方法
}
}
class EasySon extends EasyBlock{
static{
//静态代码块 一个类的静态代码块只会执行一次
//加载类对象时执行
System.out.println("子类--静态代码块");
}
{
//成员代码块 每一次new对象时执行
//成员代码块在构造方法之前运行
System.out.println("子类--成员代码块");
}
EasySon(){
System.out.println("子类--构造方法");
}
EasySon(int num){
System.out.println("子类--带参数构造方法");
}
}