StudentTest1.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package _02_复杂对象练习;
  2. public class StudentTest1 {
  3. public static void main(String[] args) {
  4. //1 创建出来一个学生数组
  5. Student[] students = new Student[3];
  6. students[0] = new Student(1L,"zhangsan",18);
  7. students[1] = new Student(2L,"lisi",18);
  8. students[2] = new Student(3L,"wangwu",18);
  9. // 根据id 查询是否存在
  10. boolean flag = contains(1L, students);
  11. if(flag){
  12. System.out.println("删除id存在能够正常删除");
  13. // 把删除元素锁在位置的值修改成Null
  14. removeElementById(1L,students);
  15. // 打印数组当中元素
  16. printArr(students);
  17. }else{
  18. System.out.println("删除id 在数组当中不存在");
  19. }
  20. }
  21. /**
  22. * 打印数组
  23. * @param students
  24. */
  25. private static void printArr(Student[] students) {
  26. for (Student student : students) {
  27. if(student!=null){
  28. System.out.println(student);
  29. }
  30. }
  31. }
  32. /**
  33. * 把id 锁在位置的值设置成null
  34. */
  35. private static void removeElementById(long id, Student[] students) {
  36. for (int i = 0; i < students.length; i++) {
  37. Student student = students[i];
  38. // 注意我们拿传递id 和 student 当中id 进行比较
  39. if(id == student.getId()){
  40. students[i] = null;
  41. }
  42. }
  43. }
  44. private static boolean contains(Long id, Student[] students) {
  45. /**
  46. * NullPointerException : 空指针异常
  47. * 原因: 使用null 去调用了属性或者是方法
  48. */
  49. for (Student student : students) {
  50. // 判断当前student 不为哦那个做id 比较, 因为数组当中如果没存满,可能为空null
  51. if(student!=null){
  52. if(student.getId() == id){
  53. return true;
  54. }
  55. }
  56. }
  57. return false;
  58. }
  59. }