ArrayList的使用

数组和集合的区别

集合长度可变,数组长度固定

集合只能存引用数据类型,基本数据类型需先转化成包装类;数组可以存引用数据类型或基本数据类型

ArrayList

定义在java.util包下,使用需要导包

import java.util.ArrayList;
public class ArrayListDemo1{
    public static void main(String[]args){
        //创建集合的对象
        //泛型:限定集合中储存数据的类型

        ArrayList<String>list=newArrayList<>();
        System.out.println(list);
}
} 

 打印对象不是地址值,而是集合中储存的数据内容

在展示内容时会用[ ]对数据进行包裹

ArrayList成员方法        

增 删 改 查

                    方法名                说明
boolean add()添加元素,返回值表示是否添加成功
boolean remove()删除指定元素,返回值表示是否添加成功
E remove(int index)删除指定索引的元素,返回被删除的元素
E set(int index,E)修改指定索引下的元素,返回原来的元素
E get(int index)获取指定索引的元素
int size()集合的长度,即集合中元素的个数
示例代码
public class ArrayListDemo02 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<String> array = new ArrayList<String>();

        //添加元素
        array.add("hello");
        array.add("world");
        array.add("java");

        //public boolean remove(Object o):删除指定的元素,返回删除是否成功
        //        System.out.println(array.remove("world"));
        //        System.out.println(array.remove("javaee"));

        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
        //        System.out.println(array.remove(1));

        //IndexOutOfBoundsException
        //        System.out.println(array.remove(3));

        //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
        //        System.out.println(array.set(1,"javaee"));

        //IndexOutOfBoundsException
        //        System.out.println(array.set(3,"javaee"));

        //public E get(int index):返回指定索引处的元素
        //        System.out.println(array.get(0));
        //        System.out.println(array.get(1));
        //        System.out.println(array.get(2));
        //System.out.println(array.get(3)); //?????? 自己测试

        //public int size():返回集合中的元素的个数
        System.out.println(array.size());

        //输出集合
        System.out.println("array:" + array);
    }
}

 练习一定义一个集合,添加字符串,并进行遍历

方法一

public ststic void main(String[]args){

    ArrayList<String>list=new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
System.out.print("[");
for(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.println("]");

}
}

方法二利用StringBulider

public class work{
    public static void main(String[] args) {
        ArrayList <String>list=new ArrayList<>();
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
            list.add("ddd");
            list.add("eee");
            StringBuilder sb=new StringBuilder();
          sb.append("[");
        for (int i = 0; i < list.size(); i++) {
            if (i==list.size()-1){
                sb.append(list.get(i));
            }else {
                sb.append(list.get(i)+",");
            }
        }
        sb.append("]");
        String str=sb.toString();
        System.out.println(str);

基本数据

byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

练习二 定义一个集合,添加数字,并进行遍历,格式参照:[1,2,3];

import java.util.ArrayList;
public class work {
    public static void main(String[] args) {
        ArrayList<Integer>list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        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.println("]");

    }
}

练习三:添加学生对象并遍历。

定义一个集合,添加一些学生对象,并进行遍历,学生类的属性为:姓名,年龄

package demo;

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

    public student() {
    }

    public student(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 demo;

import java.io.CharArrayReader;
import java.util.ArrayList;

public class studentTest{
    public static void main(String[] args) {
        ArrayList <student>list=new ArrayList<>();

        student s1=new student("zhangsan",22);
        student s2=new student("wangwu",23);
        student s3=new student("lisi",28);
        list.add(s1);
        list.add(s2);
        list.add(s3);
        for (int i = 0; i < list.size(); i++) {
            student stu=list.get(i);
            System.out.println(stu.getName()+stu.getAge());
        }
    }
}



若为键盘录入学生信息,

import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        ArrayList<student>list =new ArrayList<>();
        //键盘录入学生对象
        Scanner sc=new Scanner(System.in);
        //最初集合长度为0若i<list.size,则不执行
        for (int i = 0; i < 3; i++) {
            student s=new student();
            System.out.println("请输入学生姓名");
            String name=sc.next();
            System.out.println("请输入学生年龄");
            int age=sc.nextInt();

            //把name和age赋值给学生对象
            s.setAge(age);
            s.setName(name);

            //把学生对象添加到集合中
            list.add(s);
        }
        //遍历
        for (int i = 0; i < list.size(); i++) {
            student stu=list.get(i);
            System.out.println(stu.getAge()+","+stu.getName());

        }


    }

}

 

练习四判断用户对象是否存在,main方法中定义一个集合,存入三个用户对象,用户属性为:id,username,password,定义一个方法根据id查找对应的用户信息,存在返回ture,不存在返回false

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;
    }

    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //创建集合
        ArrayList<user>list =new ArrayList<>();
        //创建用户对象
        user u1=new user("123","zhangsan","123456");
        user u2=new user("123","lisi","123456");
        user u3=new user("123","wamhwu","123456");
        //将用户对象添加到集合中
        list.add(u1);
        list.add(u2);
        list.add(u3);
        //调用方法查看id是否存在
        boolean result=contains(list,"123");
        System.out.println(result);
    }
    //需要list和id来创建方法,需要返回值
    public static boolean contains(ArrayList<user>list,String id){
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)){
                return true;
            }
        }
        return false;
    }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值