目录
ArrayList概述
add(element) 用法
add(index, element)用法
remove(element)用法
remove(index)用法
get(index)用法
set(index,element)
练习
test1
定义一个集合,添加字符串,并进行遍历,要求输出格式为:[元素1,元素2,元素3]
test2
定义一个集合,添加一些学生对象,并进行遍历,学生类的属性为:姓名,年龄
ArrayList概述
ArrayList
是 Java 集合框架中的一种动态数组,它实现了List
接口。它可以按照元素的插入顺序进行存储,并允许按索引访问、添加和删除元素。与普通数组不同的是,ArrayList
会自动扩容以容纳更多的元素,因此它的大小是可变的。
下面是一些ArrayList
的常用方法:
add(element)
: 向列表末尾添加一个元素。add(index, element)
: 在指定位置插入一个元素。remove(element)
: 默认删除第一个element元素。remove(index)
: 删除指定位置的元素。size()
: 返回列表中的元素数量。get(index)
: 获取指定位置的元素。- set(index,element):修改指定位置的元素。
add(element) 用法
add(element)
: 向列表末尾添加一个元素。
首先我们得先创建一个ArrayList
ArrayList<String> list=new ArrayList<>();
然后使用list.add()添加数据
list.add("aaa");
👆这个的返回值是一个Boolean类型的,下面我们来看一下示例
可以看得到返回的结果为true
添加的返回值始终都是true,所以平时使用的时候可以省略返回值
add(index, element)用法
add(index, element)
: 在指定位置插入一个元素。
跟add(element)差不多,这里就直接展示代码啦
学完添加我们来看看如何删除
remove(element)用法
remove(element)
: 默认删除第一个element元素。
它的返回值是一个Boolean类型
如果集合里面没有要删除的数据就返回false
remove(index)用法
remove(index)
: 删除指定位置的元素。
这个的返回值时删除的元素
运行结果在这里👇
get(index)用法
get(index)
: 获取指定位置的元素。
结果如下
那我们如果想遍历一下该如何实现呢
集合里的长度是int size(),那我们就可以使用循环来实现遍历
运行结果如下
set(index,element)
set(index,element):修改指定位置的元素。
运行结果如下,而已看到后面的aaa被修改为了eee
下面我们来搞点练习试试
-----------------------------------------------------------------------------------------------------------------------------
练习
test1
定义一个集合,添加字符串,并进行遍历,要求输出格式为:[元素1,元素2,元素3]
分析:这样的话,我们输出的时候就不需要换行,在遍历的同时还得有一个逗号的判断,什么时候需要逗号,什么时候不需要逗号
下面我们就来看一下代码是如何实现的
import java.util.ArrayList;
public class test1 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("听歌");
list.add("睡觉");
list.add("敲代码");
list.add("上班");
list.add("吃饭");
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
String str= list.get(i);
System.out.print(str);
if (i<list.size()-1) {
System.out.print(",");
}
}
System.out.print("]");
}
}
结果跟要求是一样的啦
那如果是添加数字呢?该如何实现
这里就需要用到基本数据类型对应的包装类
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double
boolean Boolean
好,有了这个就好办多了
首先先创建一个ArrayList,数据类型改一下
ArrayList<Integer> list=new ArrayList<>();
import java.util.ArrayList;
public class test1 {
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++) {
int str= list.get(i);
System.out.print(str);
if (i<list.size()-1) {
System.out.print(",");
}
}
System.out.print("]");
}
}
test2
定义一个集合,添加一些学生对象,并进行遍历,学生类的属性为:姓名,年龄
首先我们得创建一个学生对象
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 获取
* @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{name = " + name + ", age = " + age + "}";
}
}
下面才是本道练习的代码
import java.util.ArrayList;
public class test2 {
public static void main(String[] args) {
ArrayList<Student>list=new ArrayList<>();
Student S1=new Student("zhangsan",18);
Student S2=new Student("lisi",19);
Student S3=new Student("wagwu",20);
list.add(S1);
list.add(S2);
list.add(S3);
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getName()+","+student.getAge());
}
}
运行结果如下
如果我们要手动输入这三个学生的信息的话那又该如何呢?
下面我们来看一下这该如何实现
import java.util.ArrayList;
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
ArrayList<Student>list=new ArrayList<>();
Scanner sc=new Scanner(System.in);
for (int i = 0; i < 3; i++) {
Student stu=new Student();
System.out.println("请输入学生的姓名");
String name=sc.next();
System.out.println("请输入学生的年龄");
int age=sc.nextInt();
stu.setAge(age);
stu.setName(name);
list.add(stu);
}
System.out.println("----------------------------------------------------------");
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getName()+","+student.getAge());
}
}
}
运行结果如下
test3
main方法中定义一个集合,存入三个用户对象。用户属性为:id、username,password。要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回true,如果不存在,返回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;
}
/**
* 获取
* @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 + "}";
}
}
再开始写本题
首先我们得创建集合,再创建三个用户对象,再将用户对象添加到集合中
然后就开始写方法了
先遍历集合,再利用equals()方法判断集合里的id与我们要查找的id是否相同,相同就返回true,遍历结束都没有符合要求的就返回false
完整测试代码如下
import java.util.ArrayList;
public class ArrayListTest1 {
public static void main(String[] args) {
//创建集合
ArrayList<User>list=new ArrayList<>();
//创建三个用户对象
User user1=new User("1","zhangsan","111");
User user2=new User("2","lisi","222");
User user3=new User("3","wangwu","333");
//把用户对象添加到集合中
list.add(user1);
list.add(user2);
list.add(user3);
boolean b = find(list, "1");
System.out.println(b);
}
public static boolean find(ArrayList<User>list,String id){
for (int i = 0; i < list.size(); i++) {
User user=list.get(i);
String userId = user.getId();
if(userId.equals(id)){
return true;
}
}
return false;
}
}
测试结果如下
test4
定义javabean类:PhonePhone属性:品牌,价格。main方法中定义一个集合,存入三个手机对象。分别为:小米,1999。苹果,8000。oppo,2999。定义一个方法,将价格低于3000的手机信息返回。
首先还是先写JavaBean类
public class Phone {
private String brand;
private int price;
public Phone() {
}
public Phone(String brand, int price) {
this.brand = brand;
this.price = price;
}
/**
* 获取
* @return brand
*/
public String getBrand() {
return brand;
}
/**
* 设置
* @param brand
*/
public void setBrand(String brand) {
this.brand = brand;
}
/**
* 获取
* @return price
*/
public int getPrice() {
return price;
}
/**
* 设置
* @param price
*/
public void setPrice(int price) {
this.price = price;
}
public String toString() {
return "Phone{brand = " + brand + ", price = " + price + "}";
}
}
然后在写本题主要代码
还是先创建集合,再创建三个用户对象,再将用户对象添加到集合中
接下来我们写方法
这其实就相当于把数据都放到了一个容器中,再将容器返回
main方法中还得用集合去接收
最后在遍历返回的集合,输出我们想要的结果
完整代码如下
import java.util.ArrayList;
public class ArrayListTest2 {
public static void main(String[] args) {
ArrayList<Phone>list=new ArrayList<>();
Phone phone1=new Phone("小米",1999);
Phone phone2=new Phone("苹果",8000);
Phone phone3=new Phone("oppo",2999);
list.add(phone1);
list.add(phone2);
list.add(phone3);
ArrayList<Phone> phoneList = getPhone(list);
for (int i = 0; i < phoneList.size(); i++) {
Phone phone=phoneList.get(i);
System.out.println(phone.getBrand()+","+phone.getPrice());
}
}
public static ArrayList<Phone> getPhone(ArrayList<Phone>list){
//定义一个集合用于返回
ArrayList<Phone>resultList=new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Phone phone=list.get(i);
int price=phone.getPrice();
if(price<3000){
resultList.add(phone);
}
}
return resultList;
}
}
测试结果
ArrayList的学习就到这里啦,我们下期再见!!!
继续努力