如何创建包含Artists列表的Java集合类并实现数据存取?
使用Java集合存储Artists对象列表的实现方案
你的思路是可行的,静态集合字段的方式适合需要在类的多个方法中共享这个集合的场景;如果只是在main方法里使用,直接在方法内创建集合会更轻便。下面给你具体的实现步骤和代码示例:
一、优化原Artists类(可选但推荐)
原类用insert方法初始化属性,其实用构造方法更符合Java的编码规范,创建对象时会更简洁。当然你也可以保留原有的insert方法,这里给出两种写法供你选择:
方式1:保留原insert方法的Artists类
class Artists { int id; String description; int year; void insert(int i, String d, int y) { id = i; description = d; year = y; } void display() { System.out.println(id + " " + description + " " + year); // 加空格让输出更易读 } }
方式2:改用构造方法初始化的Artists类
class Artists { int id; String description; int year; // 构造方法,创建对象时直接初始化属性 public Artists(int id, String description, int year) { this.id = id; this.description = description; this.year = year; } void display() { System.out.println(id + " " + description + " " + year); } }
二、实现集合存储的具体代码
Java中常用的列表集合是ArrayList,需要先导入java.util.ArrayList和java.util.List包。
方案1:按照你的思路——使用静态集合字段
适合需要在类的多个方法中复用这个集合的场景:
import java.util.ArrayList; import java.util.List; public class ArtistsCollectionRunner { // 声明静态集合字段 private static List<Artists> artistsList = new ArrayList<>(); public static void main(String[] args) { // 创建Artists对象并添加到集合 Artists a1 = new Artists(); a1.insert(23, "An", 2015); artistsList.add(a1); Artists a2 = new Artists(); a2.insert(13, "Mon", 2089); artistsList.add(a2); Artists a3 = new Artists(); a3.insert(11, "Gla", 2013); artistsList.add(a3); // 遍历集合,展示所有对象信息 for (Artists artist : artistsList) { artist.display(); } } }
方案2:更常用的方式——在main方法内直接创建集合
如果只是在main方法中使用集合,不需要共享给其他方法,这种写法更轻便:
import java.util.ArrayList; import java.util.List; public class ArtistsCollectionRunner { public static void main(String[] args) { // 直接在方法内创建集合对象 List<Artists> artistsList = new ArrayList<>(); // 如果用优化后的构造方法,创建对象可以一步完成 artistsList.add(new Artists(23, "An", 2015)); artistsList.add(new Artists(13, "Mon", 2089)); artistsList.add(new Artists(11, "Gla", 2013)); // 遍历展示 for (Artists artist : artistsList) { artist.display(); } } }
关键说明
- 集合的泛型
<Artists>用来指定集合只能存储Artists类型的对象,避免类型错误; ArrayList是List接口的实现类,是最常用的动态列表;- 遍历集合可以用增强for循环(如上示例),也可以用普通for循环或者迭代器;
- 如果保留原
insert方法,就先创建空对象再调用insert初始化,再添加到集合;如果用构造方法,创建对象时直接初始化,一步添加到集合更高效。
内容的提问来源于stack exchange,提问作者renboo ai
相关产品推荐
相关产品推荐

