ArrayList(集合)成员方法
集合的增、删、改、查、遍历代码练习
package day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
//1、定义一个集合
ArrayList<String> list=new ArrayList<>();
//2、添加元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
//System.out.println(list);
//3、删除元素
/* boolean result=list.remove("ccc");//删除指定元素
System.out.println(result);
//String str=list.remove(0);//按照索引删除
//System.out.println(str);*/
//4、修改对应元素
//list.set(1,"ddd");
//5、查找元素
/* String str=list.get(0);
System.out.println(str);
System.out.println(list);*/
//6、遍历
for (int i = 0; i < list.size(); i++) {//获取集合的长度用size方法
String str=list.get(i);
System.out.println(str);
}
}
}
练习一:集合的遍历方式
package day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
//1、定义一个集合
ArrayList<String> list=new ArrayList<>();
//2、添加元素
list.add("aaa");
list.add("bbb");
list.add("ccc");
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 day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
//1、定义一个集合
ArrayList<Integer> list=new ArrayList<>();//此处要写int的包装类Integer
//2、添加元素
list.add(1);
list.add(2);
list.add(3);
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("]");
}
}
练习三:添加学生对象并遍历
Student类
package day9;
public class Student {
//1、私有成员变量
//2、空参构造
//3、带全部参数的构造方法
//3、get、set方法
private int age;
private String name;
public Student() {
}
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
test类
package day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
//1、定义集合
ArrayList<Student> list=new ArrayList<>();
//2、创建学生对象
Student stu1=new Student(23,"张三");
Student stu2=new Student(25,"李四");
list.add(stu1);
list.add(stu2);
//3、循环遍历
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);//定义一个统一的变量名来接收
System.out.println(stu.getName()+" "+stu.getAge());//调用get方法获取属性值
}
}
}
运行结果
练习四:添加学生对象并遍历(对象数据键盘录入)
Student类和练习三的一样不改动
test类
package day9;
import java.util.ArrayList;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
//1、定义集合
ArrayList<Student> list=new ArrayList<>();
Scanner sc=new Scanner(System.in);
for (int i = 0; i < 3; i++) {//因为list刚创建长度为0,所以不能用size控制循环次数
//注意创建学生对象不能写在循环的外面,否则后一个会覆盖前一个的值,导致列表中都是最后一个创建的值
Student stu=new Student();
System.out.println("请输入学生姓名");
String name=sc.next();
System.out.println("请输入学生年龄");
int age=sc.nextInt();
//将age和name赋值给学生对象
stu.setName(name);
stu.setAge(age);
//把学生对象添加到集合当中
list.add(stu);
}
//循环遍历打印
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);//用对象接收
System.out.println(stu.getName()+","+stu.getAge());
}
}
}
练习五:添加用户对象并判断是否存在
User类
package day9;
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;
}
}
test类
package day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
ArrayList<User> list=new ArrayList<>();
User user1=new User("heima001","ligen","1234");
User user2=new User("heima002","zhangsan","123456");
User user3=new User("heima003","wangwu","1234qwer");
list.add(user1);
list.add(user2);
list.add(user3);
//调用方法进行判断
boolean flag=contains(list,"heima004");
System.out.println(flag);
}
public static boolean contains(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;
}
}
改进:添加条件如果存在返回索引,不存在返回-1
test类改动
package day9;
import java.util.ArrayList;
public class test {
public static void main(String[] args) {
ArrayList<User> list=new ArrayList<>();
User user1=new User("heima001","ligen","1234");
User user2=new User("heima002","zhangsan","123456");
User user3=new User("heima003","wangwu","1234qwer");
list.add(user1);
list.add(user2);
list.add(user3);
//调用方法进行判断
boolean flag=contains(list,"heima001");
int index=getIndex(list,"heima001");
System.out.println(flag+","+index);
}
public static boolean contains(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;*/
return getIndex(list,id)>=0;//可以直接调用其他函数
}
public static int getIndex(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 i;
}
}
return -1;
}
}