image.png

    1. package com.itheima.arraylist;
    2. import java.util.ArrayList;
    3. public class ArrayListTest5 {
    4. public static void main(String[] args) {
    5. // 目标:理解ArrayList集合存储自定义类型的对象
    6. // 1.定义电影类
    7. // 2.创建三个电影对象
    8. Movie m1 = new Movie("肖申克的救赎",9.7,"罗宾斯");
    9. Movie m2 = new Movie("霸王别姬",9.7,"张国荣、张丰毅");
    10. Movie m3 = new Movie("阿甘正传",9.5,"汤姆.汉克斯");
    11. // 3.创建一个电影类型的ArrayList集合,存储三部电影对象
    12. ArrayList<Movie> movies = new ArrayList<>();// 存储的是Movie类的对象
    13. /*
    14. // 可以理解为将原来的String类替换为(自己定义的)Movie类
    15. 这样(集合里面的Movie元素可以调用其方法)
    16. */
    17. movies.add(m1);
    18. movies.add(m2);
    19. movies.add(m3);
    20. System.out.println(movies); // 直接输出是输出集合存储的对象地址
    21. // [com.itheima.arraylist.Movie@776ec8df, com.itheima.arraylist.Movie@4eec7777, com.itheima.arraylist.Movie@3b07d329]
    22. //4.遍历电影类型的集合中的每个电影对象,访问它的信息即可
    23. for (int i = 0; i < movies.size(); i++) {
    24. Movie m = movies.get(i); // 得到的是对象
    25. System.out.println("电影名称:" + m.getName());
    26. System.out.println("电影得分:" + m.getScore());
    27. System.out.println("电影主演:" + m.getActor());
    28. System.out.println("--------------------");
    29. }
    30. }
    31. }
    32. // 这是自己定义的Movie类
    33. package com.itheima.arraylist;
    34. public class Movie {
    35. private String name;
    36. private double score;
    37. private String actor;
    38. public Movie() {
    39. }
    40. public Movie(String name, double score, String actor) {
    41. this.name = name;
    42. this.score = score;
    43. this.actor = actor;
    44. }
    45. public String getName() {
    46. return name;
    47. }
    48. public void setName(String name) {
    49. this.name = name;
    50. }
    51. public double getScore() {
    52. return score;
    53. }
    54. public void setScore(double score) {
    55. this.score = score;
    56. }
    57. public String getActor() {
    58. return actor;
    59. }
    60. public void setActor(String actor) {
    61. this.actor = actor;
    62. }
    63. }

    集合只能存储引用类型的对象,集合存储的元素不是对象本身,而是对象的地址
    image.png