• Java SE入门(七)——Java集合与实例


    iwehdio的博客园:https://www.cnblogs.com/iwehdio/

    1、对象数组

    • 自动生成构造方法:
      • 无参构造方法:右键 > source > Generate Constructors from Superclass....
      • 有参构造方法:右键 > source > Generate Constructors using Fields....
    • 自动生成getXxx和setXxx方法:
      • 右键 > source > Generate Getters and Setters
    • 创建以对象为元素的数组:
      • 例: Student[] students = new Student[3];
      • 输出方式:System.out.println(getName() + getAge());
      • 再堆内存中先生成了空数组 Student[3] , 然后创建了三个Student对象,最后将三个对象的地址按顺序填入空数组中。

    2、集合

    面向对象编程时,为了方便对多个对象进行操作。

    长度可以变化的数组。

    • ArrayList

      • 表示泛型。
      • 在出现E的地方可以使用引用数据类型替换。
      • Systemo.out.println();获取的为集合对象的内容。
    • 构造方法:

      • 创建对象为字符串的集合:ArrayList<String> arrat = new ArrayList<String>();
    • 添加方法:

      • 添加元素:public boolean add(E e);
      • 指定索引处添加元素:public void add(int index,E element);
    • 获取方法:

      • 返回指定索引处的元素:public E get(int index);
    • 集合长度:

    • 集合中的元素个数:public int size();

    • 删除元素:

      • 删除指定的元素:public boolean remove(Object o);元素不存在时返回 false。
      • 删除指定位置的元素:public E remove(int index);返回被删除的元素。
    • 修改元素:

      • 修改指定索引处的元素,返回被删除的元素:public E set(int index,E element);
    • 集合遍历:

      for(int x=0;x<arr.size();x++){
          String s= array.get(x);
          System.out.println(s);
      }
      
    • 键盘录入数据并存储:

      import java.util.ArrayList;
      import java.util.Scanner;
      
      public class Demo {
      	public static void main(String[] args) {		
      		ArrayList<Student> array = new ArrayList<Student>();		
      		addStudent(array);	
      		Student s = array.get(0);
      		System.out.println(s.getName()+" "+s.getAge());
      	}
      	
      	public static void addStudent(ArrayList<Student> arr){
      		Scanner sc = new Scanner(System.in);
      		String name = sc.nextLine();
      		String age = sc.nextLine();
      		Student s = new Student();
      		s.setName(name);
      		s.setAge(age);
      		arr.add(s);
      	}
      }
      

      学生类:

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

    3、学生管理系统

    • 学生类

      public class Student {
      	private String id;
      	private String name;
      	private String age;
      	private String address;
      	
      	public Student() {
      	}
      	
      	public Student(String id, String name, String age, String adress) {
      		this.id = id;
      		this.name = name;
      		this.age = age;
      		this.address = address;
      	}
      
      	public String getId() {
      		return id;
      	}
      
      	public void setId(String id) {
      		this.id = id;
      	}
      
      	public String getName() {
      		return name;
      	}
      
      	public void setName(String name) {
      		this.name = name;
      	}
      
      	public String getAge() {
      		return age;
      	}
      
      	public void setAge(String age) {
      		this.age = age;
      	}
      
      	public String getAddress() {
      		return address;
      	}
      
      	public void setAdress(String address) {
      		this.address = address;
      	}
      }
      
    • 操作类

      import java.util.ArrayList;
      import java.util.Scanner;
      
      public class Manager {
      	public static void main(String[] args) {
      		System.out.println("----进入系统-----");
      		
      		ArrayList<Student> array = new ArrayList<Student>();
      		while(true){
      			System.out.println("1.查看");
      			System.out.println("2.添加");
      			System.out.println("3.删除");
      			System.out.println("4.修改");
      			System.out.println("5.退出");
      			System.out.println("请输入");
      			Scanner sc = new Scanner(System.in);
      			String choice = sc.nextLine();
      			
      			switch(choice){
      			case "1":
      				findStudent(array);
      				break;
      			case "2":
      				addStudent(array);
      				break;
      				
      			case "3":
      				deletStudent(array);
      				break;
      				
      			case "4":
      				updateStudent(array);
      				break;
      			case "5":
      			default:
      				System.out.println("退出成功");
      				System.exit(0);  //JVM退出
      				break;
      			}
      		}
      	}
      	public static void findStudent(ArrayList<Student> arr){
      		if(arr.size() ==0 ){
      			System.out.println("无数据信息");
      		}else{
      			System.out.println("学号	姓名	年龄	居住地");
      			for(int x=0;x<arr.size();x++){
      				Student s = arr.get(x);
      				System.out.println(s.getId()+"	"+s.getName()+"	"+s.getAge()+"	"+s.getAddress());
      			}
      		}
      	}
      	
      	public static void addStudent(ArrayList<Student> arr){
      		Scanner sc = new Scanner(System.in);
      		String id;
      		while(true){
      			System.out.println("学号");
      			id = sc.nextLine();
      			boolean flag = false;
      			for(int x=0;x<arr.size();x++){
      				Student s = arr.get(x);
      				if(s.getId().equals(id)){
      					System.out.println("学号重复");
      					flag = true;
      					break;
      				}
      			}
      			if(flag){
      				System.out.println("重新输入");
      			}else{
      				break;
      			}
      		}
      		
      		System.out.println("姓名");
      		String name = sc.nextLine();
      		System.out.println("年龄");
      		String age = sc.nextLine();
      		System.out.println("地址");
      		String address = sc.nextLine();
      		
      		Student s = new Student();
      		s.setId(id);
      		s.setName(name);
      		s.setAge(age);
      		s.setAdress(address);
      		
      		arr.add(s);
      		System.out.println("添加成功");
      		
      	}
      	
      	public static void deletStudent(ArrayList<Student> arr){
      		Scanner sc = new Scanner(System.in);
      		System.out.println("删除学生学号");
      		String id = sc.nextLine();
      		int index = -1;
      		
      		for(int x=0;x<arr.size();x++){
      			Student s = arr.get(x);
      			if(s.getId().equals(id)){
      				index = x;
      				break;
      			}
      		}
      		
      		if(index == -1){
      			System.out.println("不存在此学号");
      		}else{
      			arr.remove(index);
      			System.out.println("删除成功");
      		}
      	}
      	
      	public static void updateStudent(ArrayList<Student> arr){
      		Scanner sc = new Scanner(System.in);
      		System.out.println("修改学生学号");
      		String id = sc.nextLine();
      		int index = -1;
      		
      		for(int x=0;x<arr.size();x++){
      			Student s = arr.get(x);
      			if(s.getId().equals(id)){
      				index = x;
      				break;
      			}
      		}
      		
      		if(index == -1){
      			System.out.println("不存在此学号");
      		}else{
      			System.out.println("新姓名");
      			String name = sc.nextLine();
      			System.out.println("新年龄");
      			String age = sc.nextLine();
      			System.out.println("新地址");
      			String address = sc.nextLine();
      			Student s = new Student();
      			s.setId(id);
      			s.setName(name);
      			s.setAge(age);
      			s.setAdress(address);
      			arr.set(index, s);
      			System.out.println("修改成功");
      		}
      	}
      }
      

    iwehdio的博客园:https://www.cnblogs.com/iwehdio/

  • 相关阅读:
    如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
    Quartz.NET开源作业调度框架系列(五):AdoJobStore保存job到数据库
    Quartz.NET开源作业调度框架系列(四):Plugin Job
    Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递
    Quartz.NET开源作业调度框架系列(二):CronTrigger
    Quartz.NET开源作业调度框架系列(一):快速入门step by step
    如何在Visual Studio中开发自己的代码生成器插件
    C#如何定制Excel界面并实现与数据库交互
    Ajax+PHP+MySQL 登陆示例
    Tomcat性能优化(二) ExpiresFilter设置浏览器缓存
  • 原文地址:https://www.cnblogs.com/iwehdio/p/12217393.html
Copyright © 2020-2023  润新知