如何使用集合中的ArrayList方法

来源:互联网 发布:最好广告过滤软件 编辑:程序博客网 时间:2024/06/03 19:19
public class ArrayListTest {
     //使用泛型使studentlist的类型只能是Student
public  ArrayList<Student> studentlist=new ArrayList<Student>();

public static void main(String[] args) {
//在静态变量方法中使用非静态方法需要实例化类的实例,通过实例去调用非静态方法
    ArrayListTest demo=new  ArrayListTest ();
demo.addStudent();

System.out.println("修改前");

demo. printStudent();

// 使用学生学号查找学生

String num="23";
Student stu=demo.findStudentById(num);
System.out.println("查找的学生是:"+stu);

// 通过姓名查找学生,并修改学生姓名
demo.updateStudent("李三","李三万");
System.out.println("修改后");
demo. printStudent();
System.out.println("删除后");
demo.removeStudent(stu);
demo. printStudent();
}
        public void addStudent(){
        Student studentA=new Student("李四","23",23,'男');
    Student studentB=new Student("李三","24",25,'男');
    Student studentC=new Student("张三","25",25,'男');
    studentlist.add(studentA);//Boolean add(Object o)将指定元素添加到列表的末尾对象
    studentlist.add(studentB);
    studentlist.add(1,studentC);
        }
//        public boolean Contains(Student studentA){
//         //Boolean contains(Object o)判断列表中是否包含对象元素
//         boolean a=studentlist.contains(studentA);
//     return a;
//        }
        public void printStudent(){
 //因为类的成员属性已经声明了studentlist为Student类型,所以不需要进行类型转换   
//         Student lisi=(Student)studentlist.get(0);
//         Student lisi=studentlist.get(0);
//     Student lisan=studentlist.get(2);
//     Student zhangs=studentlist.get(1);
//    
//     int size=studentlist.size();//Int size()返回当前列表的元素个数
//     System.out.println("Arraylist的储存元素有:"+size);
//    
//     System.out.println(lisi);
//     System.out.println(lisan);
//     System.out.println(zhangs);
//    
        int size=studentlist.size();//Int size()返回当前列表的元素个数
        System.out.println("Arraylist的储存元素有:"+size);
        for(int i=0;i<size;i++){
//         因为已经在成员属性里对studentlist设定为泛型的Student,所以用studentlist调用任何方法都默认为
//         Student型,所以前面的(Student)可以省略。
//         Student student=(Student)studentlist.get(i);
        Student student=studentlist.get(i);
        System.out.println(student);
        }
   
        }
        /*
         * 使用学生学号查找学生
         */
        public Student findStudentById(String num){
        int size=studentlist.size();
        Student student=null;
        for(int i=0;i<size;i++){
        Student stu=studentlist.get(i);
        if(stu.number.equals(num)){//因为是对象在比较所以用equals
        student=stu;
        break;
        }
        }
        return student;
        }
        /*
         * 通过姓名查找学生,并修改学生姓名
         */
        public void updateStudent(String oldName,String newName){
        int size=studentlist.size();
        
        for(int i=0;i<size;i++){
        Student stu=studentlist.get(i);
        if(stu.name.equals(oldName)){
        stu.name=newName;
        break;
        }
       
        }
        }
         public void removeStudent(Student student){
        studentlist.remove(student);
         }
}

输出的结果是

修改前
Arraylist的储存元素有:3
李四 性别   :男 年龄是 :23岁   学号是23
张三 性别   :男 年龄是 :25岁   学号是25
李三 性别   :男 年龄是 :25岁   学号是24
查找的学生是:李四 性别   :男 年龄是 :23岁   学号是23
修改后
Arraylist的储存元素有:3
李四 性别   :男 年龄是 :23岁   学号是23
张三 性别   :男 年龄是 :25岁   学号是25
李三万 性别   :男 年龄是 :25岁   学号是24
删除后
Arraylist的储存元素有:2
张三 性别   :男 年龄是 :25岁   学号是25
李三万 性别   :男 年龄是 :25岁   学号是24


用法的变形,改写录入学生的信息


public class ArrayListDemo {


public  ArrayList<Stu> studentlist=new ArrayList<Stu>();


public static void main(String[] args) {
 ArrayListDemo demo=new  ArrayListDemo ();
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入");
  for(int i=1;;i++){
 
   int g=scanner.nextInt();
   switch(g){
    case 1:demo.AddStudent();break;
    case 2:demo.printStudent();break;
    case 3:demo.removeStudent();break;
    case 4:demo.findStudentById();break;
    case 5:demo.Finsh();break;
    default:break;
  }
  }
}
       public void AddStudent(){
        System.out.println("======添加学生信息=========");
         Scanner scanner=new Scanner(System.in);
         System.out.println("请输入姓名");
         String name=scanner.next();
         System.out.println("请输入学号");
         int number=scanner.nextInt();
        Stu student=new Stu(name,number);
        studentlist.add(student);
        System.out.println("添加成功!学生姓名是:"+name+",学号是"+number);
        }
   
   
   
  
  
       public void printStudent(){


        int size=studentlist.size();//Int size()返回当前列表的元素个数
      
        System.out.println("姓名\t学号\t");
        for(int i=0;i<size;i++){
        Stu student=studentlist.get(i);
        System.out.println(student.name+"\t"+student.number);
        }
   
       }
      
   
       /*
        * 通过姓名查找学生,并删除改学生姓名
        */
      
       public void removeStudent(){
        Scanner scanner=new Scanner(System.in);
         System.out.println("=========请输入要删除学生的姓名========");
         String name=scanner.next();
         int size=studentlist.size();
          for(int i=0;i<size;i++){
          Stu stu=studentlist.get(i);
          if(stu.name.equals(name)){
          stu.name=name;
          studentlist.remove(stu);
           System.out.println("=========已删除========");
         
          break;
          }
          }
        }
       /*
        * 使用学生学号查找学生
        */
       public void findStudentById(){
        Scanner scanner=new Scanner(System.in);
         System.out.println("========请输入要查找学生的学号==========");
         int num=scanner.nextInt();
         int size=studentlist.size();
         Stu student=null;
        for(int i=0;i<size;i++){
        Stu stu=studentlist.get(i);
        if(stu.number==num){
        student=stu;
         System.out.println(student);
        break;
        }
        }
       
       }

//结束的写法
       public void Finsh(){
         System.out.println("结束");
        System.exit(0);
       }
}




0 0
原创粉丝点击