首页 > 编程语言 >0基础学JAVA(第六天)

0基础学JAVA(第六天)

时间:2024-07-19 20:55:17浏览次数:17  
标签:JAVA list 代码 基础 System 第六天 println 33.33 out

1.List集合

list容器(集合)   

之前学过的集合是数组,但是数组只能存储一种类型的数据,而且一旦声明长度之后不能更改,只能建立一个新的数组,所以为了解决这个弊端建立了list

list    接口          有三个实现类:ArrayList       LinkList    Vector

1.添加元素     add

添加的数据如果不加"",例如直接添加12,那么存入的类型就是int类型


        list.add("a");
        list.add(12+13);
        list.add(null);
        list.add(33.33);
        System.out.println(list);      //[a, 25, null, 33.33]

2.获取元素     get

        Object obj=list.get(2);
        System.out.println(obj);//null

3.在指定位置插入元素     add

        list.add(1,44);               //在1位置添加44,原本1位置和后边数据往后移
        System.out.println(list);     //[a, 44, 25, null, 33.33]
        list.add(5,54);               //上面的list长度是5所以最大只能在5的位置插入数
       //list.add(9,54);              下标越界
        System.out.println(list);     //[a, 44, 25, null, 33.33, 54]

4.设定元素     set

list.set(2,22);
System.out.println(list);
//原本2位置的数换成了22,其他位置的数不变[a, 44, 22, null, 33.33, 54]

5.包含元素     contains/containsAll

boolean b=list.contains(22);
System.out.println(b);            //true
b=list.indexOf(22)!=-1;
System.out.println(b);            //true


List list1=new ArrayList();
list1.add(33.33);
list1.add(null);
b=list.containsAll(list1);       //判断是否包含另一个集合中所有元素
System.out.println(b+"------");  //true

6.将list1数组中的数全部添加到list中      addAll

System.out.println(list);   //[a, 44, 22, null, 33.33, 54]
System.out.println(list1);  //[33.33, null]
list.addAll(list1);
System.out.println(list);   //[a, 44, 22, null, 33.33, 54, 33.33, null]

7.删除元素     remove

参数传对象,删除这个对象,返回boolean

参数传下标 删除这个下标的对象 返回这个对象

obj=list.remove(null);
System.out.println(obj);  //true
System.out.println(list);//[a, 44, 22, 33.33, 54, 33.33, null],只会删除第一个符合的元素

8.删除下标     remove

System.out.println(list);          //[a, 44, 22, 33.33, 54, 33.33, null]
obj=list.remove(2);
System.out.println(list);          //[a, 44, 33.33, 54, 33.33, null]
System.out.println(obj+"=====");   //删除下标为2的位置的数据返回被删除的数据:22

9.长度     length

长度方法一般用在循环

 for (int i=0;i<list.size();i++){
 System.out.println(list.get(i));
}
//结果:
//            a
//            33.33
//            54
//            33.33
//            null
     

另一种循环遍历方式

此外循环遍历数组还可以用下面的方法

for (Object item:list){
                System.out.println(item);

            }

 两个方法输出结果一致

10.下标     index

 b=list.indexOf(22)!=-1;
System.out.println(list);              //[a, 44, 22, null, 33.33, 54]
System.out.println(b+"------");        //true
System.out.println(list.indexOf(22));  //输出的是下标2




11.ArrayList和LinkedList

ArrayList的默认容量是10,如果容量不够会自动扩容每次扩容都是向右移位+原容量

所以第一次扩容之后是15,第二次扩容之后是22

1.LinkedList和Arraylist用法一样,但是存储数据的接口不一样

2.LinkedList 是以链表的方式

3.最大值和ArrayList一样

12.迭代器

 //迭代器
Iterator is=list.iterator();//获取了一个迭代器  迭代器只能知道下一个元素是谁,有没有下一个元素
       //适合不知道有多少个元素的时候
while (is.hasNext()){//hasNext()判断是否有下一个1
  System.out.println(is.next());
        }

2.代码块

1.代码块

1.成员代码块:

成员代码块      每一次new对象的时候执行,而且在构造方法之前运行

{
        //成员代码块      每一次new对象的时候执行,而且在构造方法之前运行
        System.out.println("父类---成员代码块");
 }

2.静态代码块

静态代码块: 一个类的静态代码块在程序运行期间只会执行一次(在加载类对象的时候执行),比成员代码块执行还要早
static {
        System.out.println("父类---静态代码块");

    }

public class EasyBlock {
    {
        //成员代码块      每一次new对象的时候执行,而且在构造方法之前运行
        System.out.println("父类---成员代码块");
    }
    EasyBlock(){
        System.out.println("父类---构造方法");
    }
    EasyBlock(int a){
        System.out.println("父类---构造方法");
    }
    public static void main(String[] args) {
        new EasyBlock2();
        //先是父类的静态代码块,然后是子类的静态代码快,父类成员代码块,父类构造方法,子类成员代码块,子类构造方法
    }
    //静态代码块    一个类的静态代码块在程序运行期间只会执行一次(在加载类对象的时候执行),比成员代码块执行还要早
    //如果父类和子类同时执行静态代码块的时候,先执行父类的
    static {
        System.out.println("父类---静态代码块");

    }
}

class EasyBlock2 extends EasyBlock {
    {
        //成员代码块      每一次new对象的时候执行,而且在构造方法之前运行
        System.out.println("子类----成员代码块");
    }
    EasyBlock2(){
        System.out.println("子类----构造方法");
    }
    EasyBlock2(int a){
        System.out.println("子类----参数构造方法");
    }

    //如果父类和子类同时执行静态代码块的时候,先执行父类的
    static {
        System.out.println("子类---静态代码块");
    }
}

结果:

父类---静态代码块
子类---静态代码块
父类---成员代码块
父类---构造方法
子类----成员代码块
子类----构造方法

3.内部类

1.成员内部类

需要对象来调用      用的比较少

2.静态内部类

用static修饰,而且四个访问权限修饰符

3.匿名内部类

4.局部内部类

在方法中建一个类
public class EasyClass {
    public static void main(String[] args) {
test9();

    }
    //外部类:独立的类
    //内部类:在类内部就是内部类

    //声明类的时候只能用public  default

    //静态内部类       用的比较多
    static class InnerA {//EasyClass的内部类
        //访问权限修饰符四个都可以用
    }
    public static void test() {
        InnerA innerA = new InnerA();
    }


    //成员(对象)内部类//需要对象来调用      用的比较少
    //访问权限修饰符四个都可以用
    class InnerB {//没有static修饰

    }

    public static void test1() {
        new EasyClass().new InnerB();
    }

    //局部内部类,在方法中建一个类    用的很少
    //不能用public,private protected  只能什么也不加    使用static都不可以
    public void inner() {
        class InnerC {//语法通过,


        }
    }

    public static void test9() {
        //匿名内部类对象
   AbstractClass ac = new AbstractClass(){//现在已经有了一个对象,但不是AbstractClass类
            @Override
            public void method() {       //会重写下面的抽象类中的method方法
                System.out.println("df");
            }
        };
        System.out.println(ac.getClass());
        AbstractClass aca = new AbstractClass() {//现在已经有了一个对象,但是不是 AbstractClass类,系统会主动加载(生成一个类)
            @Override
            public void method() {
                System.out.println("df");
            }
        };
        System.out.println(aca.getClass());
        System.out.println(ac.getClass()==aca.getClass());//false
         EasyInter ei=new EasyInter() {
             @Override
             public void method() {

             }
         };
         //下面的接口代码是上面的简化
         EasyInter eia=()->{//多行代码的时候用{}    一行代码就可以直接写
             int a=12;
             System.out.println(a);
         };
         EasyInterA eA=()->12;//12就是返回值  //如果有多行代码也可以用{}
         EasyInter ee=EasyClass::fun;
         ee.method();//这个就是实现下面的fun方法
    }

    public  static void fun(){
        System.out.println("fun");
    }
}



@FunctionalInterface
interface EasyInter{
    void method();
}
interface EasyInterA{
    int method();//需要一个返回值
}

abstract class AbstractClass{
    public abstract void method();
}
class Test{
public void method(){
    EasyClass.InnerA innerA=new EasyClass.InnerA();

}
}

标签:JAVA,list,代码,基础,System,第六天,println,33.33,out
From: https://blog.csdn.net/m0_73570063/article/details/140557535

相关文章

  • 0基础学JAVA(第五天)
    1.String类String类是一个引用类型,默认值为null;字符串在声明之后是一个常量,不能改变,是一个privatefinal修饰的value,只能在类的内部访问,而且类的内部没有提供任何修改的方法,所以是一个常量1.声明字符串:Stringstri="abc你好";stri=newString();stri=n......
  • 0基础学JAVA!!!(第四天)
    1.包装类整型:Byte,Short,Integer,Long浮点型:Float,Double字符型:Character布尔型:BooleanIntegerinta=21;Integerintb=12;System.out.println(inta==intb);Integerintac=200;Integerintc=200;System.out.prin......
  • 0基础学JAVA!!!(第三天)
    0基础学JAVA!!!(第三天)一,方法:(1)方法的定义:  定义一个方法需要有返回值类型 方法的名称(方法的参数){方法体}  返回值类型:当这个方法不需要返回值的时候返回值类型就用void,用void不是返回一个null值,是不返回值!!在用void的时候可以写return,但是不返回值,用作终止方法返回值......
  • java数组之数组工具类——Arrays的使用
    一、Arrays工具类简述    在java的类库中有许多现成的已经封装好的方法,可以供开发人员使用,比如我们之前学的二分法查找或者快速排序等。所以在实际的开发中,我们是不用自己编写这些常用的方法的。那么在常用的数组方法在哪里的?java作为面向对象的语言,所有方法都会封装......
  • 花几千上万学习Java,真没必要!(十四)
    方法:测试代码1:不带参数,不带返回值的方法packagetestmethod.com;publicclassTestClassMethod{//定义一个不带参数且不带返回值的方法publicstaticvoidmyMethod(){//在这里编写方法体System.out.println("Thisismymethod");}......
  • JavaScript实现通过按纽控制电梯上下移动,并实现帧频动画
    varapp=newPIXI.Application(520,460);document.body.appendChild(app.view);//创建背景varbg=newPIXI.Sprite.fromImage("res/lianxi/elevator/bg.png");app.stage.addChild(bg);varelevator=newPIXI.Sprite.fromImage("res/lianxi/elevator/dt......
  • javaScrip的学习(一)
    目录引言一、java和JavaScript的联系二、js中的弹出框1.alert弹出框2.confirm带确认取消的按钮弹框3.prompt带有提示信息且带有输入框的弹框 4.输出到网页中​三、js引入方式1.放在script标签中2.放在外部js文件中四、执行顺序五、书写规范1.语句结尾加分号......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-02使用安路TD开发工具创建FPGA工程
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述本实验以FPGA芯片DR1M9......
  • Java面试题(企业真题)
    01.泛型的理解泛型是Java5引入的一种特性,它允许程序员在定义类、接口或方法时指定一个或多个类型参数,从而可以在运行时处理各种不同的数据类型,同时保持类型安全。泛型提供了编译时类型检查,消除了强制类型转换的需要,减少了运行时ClassCastException异常的可能性。02.泛型......
  • JAVA小白学习日记Day6
    1.List集合:把具有相同属性的东西放在一起,也可以是容器,把有关的东西都放进去。List:List是位于java.util下的一个接口,有序集合(也称为序列)。此界面的用户可以精确控制每个元素在列表中的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并在列表中搜索元素。之前学过的容器......