java基础-ArrayList集合

集合的长度是可变的

public class ArrarList01 {
    public static void main(String[] args) {
        //利用ArrayList的空参构造,生成一个集合的对象
        //泛型:在类名后面利用尖括号来表明存储的类型
        ArrayList<int> list = new ArrayList<int>();
    }
}

上面写上int会报错,是因为集合是不可以直接存储基本数据类型,如果改成

ArrayList<String> list = new ArrayList<String>();

JDK7之后,第二个String可以不写

补充说明:

ArrayList是JAVA中自带的类,JAVA底层已经做了一些处理,直接打印是会打印其中的内容,而不是打印的地址值,打印的时候会使用[]将其中的数据包裹

集合中不可以写基本数据类型,如果要存基本数据类型的数据,就需要使用对应的包装类

ArrayList的成员方法

1、增

2、删

指定删除某个元素

remove(指定删除的元素)这里会返回是否删除成功,是一个boolean类型的

按照索引来删除某个元素

remove(0),这里是返回被删除的那个元素

String str=list.remove(0);
System.out.println(str);

3、改

set方法根据集合的索引来修改内容,set方法本身会返回修改的原数据值

boolean result=list.add("abc");
//list.add(1,"abd",2,"ddd");
list.add("ABC");
String str=list.set(0,"下");
System.out.println(str);
System.out.println(list);

4、查

get方法可以根据索引来返回要查询的元素

System.out.println(list.get(0));

size方法可以根据索引来返回集合的长度,也就是集合中元素的个数

特别注意的就是集合这里是size,不是length

int length=list.size();
System.out.println(length);

5、对集合进行遍历

list.add("ABC");
list.add("abc");
list.add("def");
for(int i=0;i<list.size();i++){
    System.out.print(list.get(i)+",");
}

集合小练习:

定义一个集合,添加字符串,并进行遍历,遍历的格式如下:

[元素1,元素2,元素3]

public class ArrayList02 {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("ABC");
        list.add("abc");
        list.add("DEF");
        list.add("def");
        //遍历
        System.out.println(list);
    }

也可以麻烦一下,写个循环

/System.out.println(list);
System.out.print("[");
for(int i=0;i<list.size();i++){
    if(i==list.size()-1){
        System.out.print(list.get(i));
    }else {
        System.out.print(list.get(i)+",");
    }
}
System.out.print("]");

2、定义一个集合,添加数字,并进行遍历,遍历的格式如下:

[元素1,元素2,元素3]

package com.jdL.day11classwork;

import java.util.ArrayList;

public class ArrayList03 {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);

        System.out.print("[");
        for(int i=0;i<list.size();i++){
            if(i==list.size()-1){
                System.out.print(list.get(i));
            }else {
                System.out.print(list.get(i)+",");
            }
        }
        System.out.print("]");
    }
}

定义一个集合,存放一些学生对象,并遍历出来

package com.jdL.day11classwork;

public class ArrayListStudent {
    private String name;
    private int age;

    public ArrayListStudent(){}
    public ArrayListStudent(String name,int age){
        this.name=name;
        this.age=age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

package com.jdL.day11classwork;

import java.util.ArrayList;

public class ArrayList04 {
    public static void main(String[] args) {
        ArrayList<ArrayListStudent> students=new ArrayList<>();
        students.add(new ArrayListStudent("张三",18));
        students.add(new ArrayListStudent("李四",20));

        for(int i=0;i<students.size();i++){
            System.out.print(students.get(i).getName()+",");
            System.out.println(students.get(i).getAge());
        }

    }
}

如果学生的姓名和年纪是键盘录入的,可以修改为

package com.jdL.day11classwork;

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayList04 {
    public static void main(String[] args) {
        ArrayList<ArrayListStudent> students=new ArrayList<>();
        for(int i=0;i<3;i++){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入学生的姓名");
            String name=sc.next();
            System.out.println("请输入学生的年纪");
            int age=sc.nextInt();
            students.add(new ArrayListStudent(name,age));
        }
        for(int i=0;i<students.size();i++){
            System.out.print(students.get(i).getName()+",");
            System.out.println(students.get(i).getAge());
        }

    }
}

判断用户是否存在,在main中定义一个集合,存入三个用户对象,用户的属性:

id,username,password

定义一个方法,根据ID查询用户信息,

如果存在返回true,如果不存在返回false

package com.jdL.day11classwork;

public class ArrayListUser {
    private int id;
    private String name;
    private String password;

    public ArrayListUser() {
    }

    public ArrayListUser(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

package com.jdL.day11classwork;

import java.util.ArrayList;

public class ArrayList05 {
    public static void main(String[] args) {
        ArrayList<ArrayListUser> user=new ArrayList<>();
        user.add(new ArrayListUser(1,"张三","123456"));
        user.add(new ArrayListUser(2,"李四","abcdef"));
        user.add(new ArrayListUser(3,"王五","abcdef"));

        boolean flage=getId(user,4);
        System.out.println(flage);



    }
    public static boolean getId(ArrayList<ArrayListUser> user,int id){
        for(int i=0;i<user.size();i++){
            if(user.get(i).getId()==id){
                return true;
            }
        }
        return false;
    }
}

判断用户是否存在,在main中定义一个集合,存入三个用户对象,用户的属性:

id,username,password

定义一个方法,根据ID查询用户信息,

如果存在返回索引,如果不存在返回-1;

package com.jdL.day11classwork;

import java.util.ArrayList;

public class ArrayList05 {
    public static void main(String[] args) {
        ArrayList<ArrayListUser> user=new ArrayList<>();
        user.add(new ArrayListUser(1,"张三","123456"));
        user.add(new ArrayListUser(2,"李四","abcdef"));
        user.add(new ArrayListUser(3,"王五","abcdef"));

        int nameId=getId(user,2);
        System.out.println(nameId);



    }
    public static int getId(ArrayList<ArrayListUser> user,int id){
        for(int i=0;i<user.size();i++){
            if(user.get(i).getId()==id){
                return user.get(i).getId();
            }
        }
        return -1;
    }
}

注意点:这里返回的数据不止一条,这就需要拿一个容器把数据存起来。可以使用数组或者集合

package com.jdL.day11classwork;

import java.util.ArrayList;

public class ArrayList06 {
    public static void main(String[] args) {
        ArrayList<ArrayListPhone> list=new ArrayList<ArrayListPhone>();
        list.add(new ArrayListPhone("小米",1000));
        list.add(new ArrayListPhone("苹果",8000));
        list.add(new ArrayListPhone("锤子",2999));

        ArrayList<ArrayListPhone> result=getPrice(list);
        for(int j=0;j<result.size();j++){
            System.out.println(result.get(j).getBrand()+","+result.get(j).getPrice());
        }



    }
    public static ArrayList<ArrayListPhone> getPrice(ArrayList<ArrayListPhone> list){
        ArrayList<ArrayListPhone> temp=new ArrayList<>();
        for(int i=list.size()-1;i>=0;i--){
            if(list.get(i).getPrice()<3000){
                temp.add(list.get(i));
            }
        }
        return temp;
    }

}
package com.jdL.day11classwork;

public class ArrayListPhone {
    private String brand;
    private double price;

    //空参构造
    public ArrayListPhone() {
    }
    //有参构造
    public ArrayListPhone(String brand, double price) {
        this.brand = brand;
        this.price = price;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
一粒小羊哦的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容