Java--集合--经典七道综合练习题

文章目录

一、集合的遍历方式

二、添加数字并遍历

三、添加学生对象并遍历

四、添加学生对象并遍历

五、添加用户对象并判断是否存在

六、添加手机对象并返回要求的数据

七、创建学生管理系统(*****)

一、集合的遍历方式

需求:定义一个集合,添加字符串,并进行遍历。

遍历格式参照:[元素1,元素2,元素3]。

import java.util.ArrayList;

public class ArrayListTest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<String> list=new ArrayList<>();
		
		//2.添加元素
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		list.add("ddd");
		
		//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.print("]");

	}

}

二、添加数字并遍历

需求:定义一个集合,添加数字,并进行遍历。

遍历格式参照:[元素1,元素2,元素3]。

import java.util.ArrayList;

public class ArrayListTest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<Integer> list=new ArrayList<>();
		
		//2.添加元素
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		
		//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.print("]");

	}

}

三、添加学生对象并遍历

需求:定义一个集合,添加一些学生对象,并进行遍历

           学生类的属性为:姓名,年龄。

public class Student_Test3 {
	private String name;
	private int age;
	
	public Student_Test3() {
		
	}
	
	public Student_Test3(String name,int age) {
		this.name=name;
		this.age=age;
	}
	
	public void setName(String name) {
		this.name=name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age=age;
	}
	
	public int getAge() {
		return age;
	}

	

}
import java.util.ArrayList;

public class ArrayListTest3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<Student_Test3> list=new ArrayList<>();
		
		//2.创建学生对象
		Student_Test3 st1=new Student_Test3("张三",23);
		Student_Test3 st2=new Student_Test3("李四",24);
		Student_Test3 st3=new Student_Test3("王五",25);
		
		//3.将学生对象添加到集合里
		list.add(st1);
		list.add(st2);
		list.add(st3);
		
		//4.遍历集合
		for(int i=0;i<list.size();i++) {
			Student_Test3 stu=list.get(i);
			System.out.println(stu.getName()+", "+stu.getAge());
		}
		

	}

}

 

四、添加学生对象并遍历

需求:定义一个集合,添加一些学生对象,并进行遍历

           学生类的属性为:姓名,年龄。

要求:对象的数据来自键盘录入

public class Student_Test3 {
	private String name;
	private int age;
	
	public Student_Test3() {
		
	}
	
	public Student_Test3(String name,int age) {
		this.name=name;
		this.age=age;
	}
	
	public void setName(String name) {
		this.name=name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age=age;
	}
	
	public int getAge() {
		return age;
	}

	

}
import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListTest4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<Student_Test3> list=new ArrayList<>();
		
		//2.键盘录入学生信息
		Scanner sc=new Scanner(System.in);
		for(int i=0;i<3;i++) {
			Student_Test3 s=new Student_Test3();
			System.out.println("请输入学生的姓名:");
			String name=sc.next();
			System.out.println("请输入学生的年龄:");
			int age=sc.nextInt();
			
			//把name 和age 赋值给学生对象
			s.setName(name);
			s.setAge(age);
			
			//把学生信息添加到集合中
			list.add(s);
		}
		
		//3.遍历集合
		for(int i=0;i<list.size();i++) {
			Student_Test3 stu=list.get(i);
			System.out.println(stu.getName()+", "+stu.getAge());
		}

	}

}

五、添加用户对象并判断是否存在

需求:

1.main方法中定义一个集合,存入三个用户对象。

  用户属性为:id,username,password

2.要求:定义一个方法,根据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;
	}
	
	public void setId(String id) {
		this.id=id;
	}
	
	public String getId() {
		return id;
	}
	
	public void setUsername(String username) {
		this.username=username;
	}
	
	public String getUsername() {
		return username;
	}
	
	public void setPassword(String password) {
		this.password=password;
	}
	
	public String getPassword() {
		return password;
	}


}
import java.util.ArrayList;

public class ArrayListTest5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<User> list=new ArrayList<>();
		
		//2.创建用户对象
		User u1=new User("001","zhangsan","1234501");
		User u2=new User("002","lisi","1234502");
		User u3=new User("003","wangwu","1234503");
		
		
		//3.将用户对象添加到集合中
		list.add(u1);
		list.add(u2);
		list.add(u3);
		
		
		//
		boolean flag=check(list,"005");
		if(flag) {
			System.out.println("存在");
		}else {
			System.out.println("不存在");
		}
		

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

}

六、添加手机对象并返回要求的数据

需求:

定义JavaBean类:Phone

Phone的属性:品牌、价格。

main方法中定义一个集合,存入三个手机对象。

分别为:小米,1000。苹果,8000。锤子,2999。

定义一个方法,将价格低于3000的手机信息返回

public class Phone {
	private String brand;
	private int price;
	
	public Phone() {
		
	}
	
	public Phone(String brand,int price) {
		this.brand=brand;
		this.price=price;
	}
	
	public void setBrand(String brand) {
		this.brand=brand;
	}
	
	public String getBrand() {
		return brand;
	}
	
	public void setPrice(int price) {
		this.price=price;
	}
	
	public int getPrice() {
		return price;
	}
	

}
import java.util.ArrayList;

public class ArrayListTest6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.创建一个集合
		ArrayList<Phone> list=new ArrayList<>();
		
		//2.创建用户对象
		Phone p1=new Phone("小米",1000);
		Phone p2=new Phone("苹果",8000);
		Phone p3=new Phone("锤子",2999);
		
		//3.添加到集合中
		list.add(p1);
		list.add(p2);
		list.add(p3);
		
		//4.调用方法
		ArrayList<Phone> phoneInfoList=getPhoneInfo(list);
		
		//5.遍历集合
		for(int i=0;i<phoneInfoList.size();i++) {
			Phone phone=phoneInfoList.get(i);
			System.out.println(phone.getBrand()+", "+phone.getPrice());
		}

	}
	public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list) {
		ArrayList<Phone> resultList=new ArrayList<>();
		
		for(int i=0;i<list.size();i++) {
			Phone p=list.get(i);
			int price=p.getPrice();
			if(price<3000) {
				resultList.add(p);
			}
		}
		
		return resultList;
	}

}

七、创建学生管理系统

需求:

 

 

 

public class Student {
	private String id;
	private String name;
	private int age;
	private String address;
	
	public Student() {
		
	}
	
	public Student(String id,String name,int age,String address) {
		this.id=id;
		this.name=name;
		this.age=age;
		this.address=address;
	}
	
	public void setName(String name) {
		this.name=name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age=age;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setId(String id) {
		this.id=id;
	}
	
	public String getId() {
		return id;
	}
	
	public void setAddress(String address) {
		this.address=address;
	}
	
	public String getAddress() {
		return address;
	}


}
import java.util.ArrayList;
import java.util.Scanner;

public class Test_综合练习 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ArrayList<Student> list=new ArrayList<>();
		
		loop:while(true) {
			System.out.println("-------------欢迎来到黑马学生管理系统--------------");
			System.out.println("1:添加学生");
			System.out.println("2:删除学生");
			System.out.println("3:修改学生");
			System.out.println("4:查询学生");
			System.out.println("5:退出");
			
			
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入您的选择:");
			String choose=sc.next();
			
			switch(choose) {
			case "1":addStudent(list);break;
			case "2":deleteStudent(list);break;
			case "3":updateStudent(list);break;
			case "4":queryStudent(list);break;
			case "5":System.out.println("5:退出");break loop;
			default:System.out.println("没有这个选项");
		}
		
			
		}

	}
	public static void addStudent(ArrayList<Student> list) {
		Scanner sc=new Scanner(System.in);
		//创建学生对象
		Student s=new Student();
		
		while(true) {
			System.out.println("请输入学生的id:");
			String id=sc.next();
			boolean flag=contains(list,id);
			if(flag) {
				//表示id已经存在,需要重新输入
				System.out.println("id已经存在,请重新输入");
			}else {
				s.setId(id);
				break;
			}
		}
		
		System.out.println("请输入学生的姓名:");
		String name=sc.next();
		s.setName(name);
		
		System.out.println("请输入学生的年龄:");
		int age=sc.nextInt();
		s.setAge(age);
		
		System.out.println("请输入学生的家庭住址:");
		String address=sc.next();
		s.setAddress(address);
		
		//将学生对象添加到数组当中
		list.add(s);
		
		//提示一下用户信息添加成功
		System.out.println("用户信息添加成功!");
		
		
	}
	
	public static void deleteStudent(ArrayList<Student> list) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要删除的学生id:");
		String id=sc.next();
		//查询id在集合中的索引
		int index=getIndex(list,id);
		if(index>=0) {
			list.remove(index);
			System.out.println("id为:"+id+"的学生删除成功");
		}else {
			System.out.println("id不存在,删除失败");
		}
		
		
	}
	
	public static void updateStudent(ArrayList<Student> list) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要修改学生的id:");
		String id=sc.next();
		
		int index=getIndex(list,id);
		if(index==-1) {
			System.out.println("要修改的id"+id+"不存在,请重新输入");
			return;
		}
		
		Student stu=list.get(index);
		
		//输入其他的新型修改
		System.out.println("请输入要修改的姓名:");
		String newName=sc.next();
		stu.setName(newName);
		
		System.out.println("请输入要修改的年龄:");
		int newAge=sc.nextInt();
		stu.setAge(newAge);
		
		System.out.println("请输入要修改的家庭住址::");
		String newAddress=sc.next();
		stu.setAddress(newAddress);
		
		System.out.println("学生信息修改成功!");
		
	}
	
	public static void queryStudent(ArrayList<Student> list) {
		if(list.size()==0) {
			System.out.println("当前无学生信息,请添加后在查询");
			//结束方法
			return; 
		}
		
		System.out.println("id\t\t姓名\t\t年龄\t"+"家庭住址");
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			System.out.println(stu.getId()+"\t"+stu.getName()+"\t\t"+stu.getAge()+"\t"+stu.getAddress());
		}
	}
	
	public static boolean contains(ArrayList<Student> list,String id) {
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			if(stu.getId().equals(id)) {
				return true;
			}
		}
		return false;
	}
	
	public static int getIndex(ArrayList<Student> list,String id) {
		
		for(int i=0;i<list.size();i++) {
			Student stu=list.get(i);
			if(stu.getId().equals(id)) {
				return i;
			}
		}
		
		return-1;
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值