一、添加学生对象并遍历(遍历)
1.遍历
学生有两个属性:姓名和年龄
package com.itbaima.exe04;
import java.util.ArrayList;
public class test02 {
public static void main(String[] args) {
//1.创建集合
ArrayList<Student> list=new ArrayList<>();
//2.创建学生对象
Student s1=new Student("小红",24);
Student s2=new Student("小绿",25);
Student s3=new Student("小兰",20);
//3.添加学生对象
list.add(s1);
list.add(s2);
list.add(s3);
//4.遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName()+","+list.get(i).getAge());
}
}
}
2.学生对象的姓名和年龄需要自己动手输入
package com.itbaima.exe04;
import java.util.ArrayList;
import java.util.Scanner;
public class test03 {
public static void main(String[] args) {
//1.先创建一个学生类型的集合
ArrayList<Student> list=new ArrayList<>();
//2.再循环,创建学生对象,并添加到集合中
Scanner sc=new Scanner(System.in);
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();
s.setAge(age);
s.setName(name);
list.add(s);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName()+","+list.get(i).getAge());
}
}
}
二、添加用户对象并判断是否存在(查找)
package com.itbaima.exe04;
import java.util.ArrayList;
public class test04 {
public static void main(String[] args) {
//1.先建立一个集合
ArrayList<User> list=new ArrayList<>();
//2.再创建三个对象
User u1=new User("heima001","xiaoming","123456");
User u2=new User("heima002","xiaohong","123456789");
User u3=new User("heima003","lvlvpao","12345");
//3.将对象添加到集合中
list.add(u1);
list.add(u2);
list.add(u3);
//4.利用方法判断索要查询的id是否在list中
boolean flag=contains(list,"heima005");
System.out.println(flag);
}
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;
}
}
其实就是在集合中查找指定元素-------------采用遍历的方法
改编:如果不是返回true/false,而是找到返回索引,找不到返回-1
代码如下:
package com.itbaima.exe04;
import java.util.ArrayList;
public class test05 {
public static void main(String[] args) {
//1.先建立一个集合
ArrayList<User> list=new ArrayList<>();
//2.再创建三个对象
User u1=new User("heima001","xiaoming","123456");
User u2=new User("heima002","xiaohong","123456789");
User u3=new User("heima003","lvlvpao","12345");
//3.将对象添加到集合中
list.add(u1);
list.add(u2);
list.add(u3);
//4.利用方法判断索要查询的id是否在list中
int flag=getIndex(list,"heima002");
System.out.println(flag);
}
public static int getIndex(ArrayList<User> list,String id){
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)){
return i;
}
}
return -1;
}
}
但其实可以把contains()函数和getIndex()函数整合在一块
代码如下:(仅考虑了函数,其余代码和上面的一样)
public static int getIndex(ArrayList<User> list, String id) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id)) {
return i;
}
}
return -1;
}
public static boolean contains(ArrayList<User> list, String id) {
return getIndex(list, id) >= 0;
}
三、添加手机对象并返回要求的数据
技巧:返回多个数据的方法:先把这些数据放到一个容器中,再返回该容器
package com.itbaima.exe04;
import java.util.ArrayList;
public class test06 {
public static void main(String[] args) {
//1.先创建一个集合
ArrayList<Phone> list=new ArrayList<>();
//2.再创建三个phone对象
Phone p1=new Phone("小米",2999);
Phone p2=new Phone("huawei",5000);
Phone p3=new Phone("三星",1000);
//3.将三个元素添加到集合中
list.add(p1);
list.add(p2);
list.add(p3);
//4.得到满足条件的phonelist
ArrayList<Phone> phonelist=getPhoneInfo(list);
//5.遍历所得到的phonelist
for (int i = 0; i < phonelist.size(); i++) {
System.out.println(phonelist.get(i).getBrand()+","+phonelist.get(i).getPrice());
}
}
//定义一个方法,把价格低于3000的手机信息返回
public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
//先定义一个容器,用来装满足条件的手机
ArrayList<Phone> phonelist=new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getPrice()<3000){
phonelist.add(list.get(i));
}
}
return phonelist;
}
}
记住:
集合的元素------list.get(i)
集合的类型--------ArrayList<Phone>