package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListTest5 {
public static void main(String[] args) {
// 目标:理解ArrayList集合存储自定义类型的对象
// 1.定义电影类
// 2.创建三个电影对象
Movie m1 = new Movie("肖申克的救赎",9.7,"罗宾斯");
Movie m2 = new Movie("霸王别姬",9.7,"张国荣、张丰毅");
Movie m3 = new Movie("阿甘正传",9.5,"汤姆.汉克斯");
// 3.创建一个电影类型的ArrayList集合,存储三部电影对象
ArrayList<Movie> movies = new ArrayList<>();// 存储的是Movie类的对象
/*
// 可以理解为将原来的String类替换为(自己定义的)Movie类
这样(集合里面的Movie元素可以调用其方法)
*/
movies.add(m1);
movies.add(m2);
movies.add(m3);
System.out.println(movies); // 直接输出是输出集合存储的对象地址
// [com.itheima.arraylist.Movie@776ec8df, com.itheima.arraylist.Movie@4eec7777, com.itheima.arraylist.Movie@3b07d329]
//4.遍历电影类型的集合中的每个电影对象,访问它的信息即可
for (int i = 0; i < movies.size(); i++) {
Movie m = movies.get(i); // 得到的是对象
System.out.println("电影名称:" + m.getName());
System.out.println("电影得分:" + m.getScore());
System.out.println("电影主演:" + m.getActor());
System.out.println("--------------------");
}
}
}
// 这是自己定义的Movie类
package com.itheima.arraylist;
public class Movie {
private String name;
private double score;
private String actor;
public Movie() {
}
public Movie(String name, double score, String actor) {
this.name = name;
this.score = score;
this.actor = actor;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
}
集合只能存储引用类型的对象,集合存储的元素不是对象本身,而是对象的地址