Java学习(第六日)

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("子类--带参数构造方法");
    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值