JAVA基础-Day4-黑马跟课题目(集合ArrayList)

一、ArrayList

1.基础操作(增删改查)

1.增
boolean add(E e) 返回是否成功
2.删
boolean remove(E e)返回是否成功
E remove(int index)返回被删除的元素
3.改
E set(int index,E e)修改指定索引元素,返回原来的元素
4.查
E get(int index)获取指定索引的元素
int size()集合长度

import java.util.*;
public class ArrayListDemo1 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        //1.创建集合对象
        //泛型:限定集合中存储数据的类型
        ArrayList<String> list=new ArrayList<>();
        //打印对象不是地址值,是集合中存储的数据内容
        //格式固定为[]
        //2.增加元素
        list.add("我");
        list.add("爱");
        list.add("帅");
        list.add("哥");
        System.out.println(list);

        //3.删除元素
        list.remove(1);
        System.out.println(list);

        //4.修改元素
        list.set(0,"爱");
        System.out.println(list);

        //5.获取元素
        String a=list.get(1);
        System.out.println(a);
    }
}

2. 添加元素遍历(引用数据类型、基本数据类型)

对应基本数据类型的包装类:
byte->Byte
short->Short
char->Character
int->Integer
long->Long
float->Float
double->Double
boolean->Boolean

A.主函数

import java.util.*;
public class ArrayListDemo2 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        //定义一个集合,添加字符串(自定义类),并进行遍历
        //格式:[元素1,元素2,元素3]
        ArrayList<String> list=new ArrayList<>();
        //添加元素
        System.out.println("请输入你要添加的字符串");
        for (int i = 0; i < 3; i++)
            list.add(in.nextLine());
        //遍历字符串集合
        AllString(list);

        //定义一个集合,添加数字(基本数据类型->包装类),进行遍历
        ArrayList<Integer> number=new ArrayList<>();
        //添加元素
        System.out.println("请输入你要添加的数字");
        for (int i = 0; i < 3; i++)
            number.add(in.nextInt());
        //遍历数字集合
        AllInteger(number);
    }
    
}

B.基本数据类型int->Integer 

public static void AllInteger(ArrayList<Integer> a)
    {
        System.out.print("[");
        for (int i = 0; i < a.size(); i++) {
            if(i==0)
                System.out.print(a.get(i));
            else
                System.out.print(","+a.get(i));
        }
        System.out.println("]");
    }
    

C.引用数据类型 String

public static void AllString(ArrayList<String> a)
    {
        System.out.print("[");
        for (int i = 0; i < a.size(); i++) {
            if(i==0)
                System.out.print(a.get(i));
            else
                System.out.print(","+a.get(i));
        }
        System.out.println("]");
    }

 3.添加遍历自定义学生类

输入学生信息,并将学生信息逐个输出

A.主函数

import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListDemo3 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        //创建一个学生类的集合
        ArrayList<Student> list=new ArrayList<>();
        //创建学生对象
        for (int i = 0; i < 3; i++) {
            Student stu=new Student();
            System.out.println("请输入学生姓名");
            String name=in.next();
            System.out.println("请输入学生年龄");
            int age=in.nextInt();
            stu.setAge(age);
            stu.setName(name);
            list.add(stu);
        }
        //逐步输出学生对象
        for(int i=0;i< list.size();i++)
        {
            Student s = list.get(i);
            System.out.println(s);
        }
    }
}

 B.学生类

public class Student {
    private String id;
    private String name;
    private int age;

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

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {

        this.id = id;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{id = " + id + ", name = " + name + ", age = " + age + "}";
    }
}

4. 添加查询遍历自定义用户类

添加用户类信息,并制定方法以便输入用户id查询用户信息

A.主函数

import java.util.*;
public class ArrayListDemo4 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        ArrayList<User> list=new ArrayList<>();
        //定义用户信息并存入集合
        for (int i = 0; i < 3; i++) {
            System.out.println("输入用户id");
            String id=in.next();
            System.out.println("输入用户名");
            String name=in.next();
            System.out.println("输入用户密码");
            String password=in.next();
            User user=new User(id,name,password);
            list.add(user);
        }
        System.out.println("请输入你要查询人的id");
        int flag=findUser(in.next(),list);
        if(flag>0)
            System.out.println("有这个人"+"\n"+"他的用户名是:"+list.get(flag).getUsername());
        else
            System.out.println("查无此人");
    }
    
}

B.方法:查询用户信息

public static int findUser(String id,ArrayList<User> list){
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id))
                return i;
        }
        return -1;
    }

C.方法:用户类

public class User {
    private String id;
    private String username;
    private String password;

    public User() {
    }

    public User(String id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    public String toString() {
        return "User{id = " + id + ", username = " + username + ", password = " + password + "}";
    }
}

5. 查询符合条件的手机(多部)

A.主函数

import java.util.*;
public class ArrayListDemo5 {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        ArrayList<Phone> list=new ArrayList<>();
        Phone p1=new Phone("小米",1000);
        Phone p2=new Phone("苹果",8000);
        Phone p3=new Phone("锤子",2999);
        list.add(p1);
        list.add(p2);
        list.add(p3);
        ArrayList<Phone> list1=new ArrayList<>();
        list1=findPhone(list);
        if(list1!=null)
        {
            System.out.println("符合条件的手机有");
            for (int i = 0; i < list1.size(); i++) {
                System.out.println(list1.get(i).getBrand()+"手机,价格:"+list1.get(i).getPrize());
            }
        }
        else
            System.out.println("没有符合条件的手机");

    }
    
}

B.方法:查询符合条件的手机

public static ArrayList<Phone> findPhone(ArrayList<Phone> list)
    {
        int flag=0;
        ArrayList<Phone> list1=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getPrize()<3000) {
                list1.add(list.get(i));
                flag=1;
            }
        }
        if(flag==0)
            return null;
        else
            return list1;
    }

C.手机类

public class Phone {
    private String brand;
    private int prize;

    public Phone() {
    }

    public Phone(String brand, int prize) {
        this.brand = brand;
        this.prize = prize;
    }

    /**
     * 获取
     * @return brand
     */
    public String getBrand() {
        return brand;
    }

    /**
     * 设置
     * @param brand
     */
    public void setBrand(String brand) {
        this.brand = brand;
    }

    /**
     * 获取
     * @return prize
     */
    public int getPrize() {
        return prize;
    }

    /**
     * 设置
     * @param prize
     */
    public void setPrize(int prize) {
        this.prize = prize;
    }

    public String toString() {
        return "Phone{brand = " + brand + ", prize = " + prize + "}";
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值