创建静态集合以在java中存储值

时间:2016-07-11 03:55:34

标签: java collections static

如何在此特定集合类型中存储对象?我是否必须创建方法或构造函数?我已经看到了创建数组列表的不同示例,但没有看到这种类型的数组列表。 static暗示了什么,它仅对班级Inventory意味着什么?

static List<Inventory> values = new ArrayList<Inventory>();
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

public class Inventory {
    static List<Inventory> values = new ArrayList<Inventory>();

    public static void main(String[] args) {
    }
}

1 个答案:

答案 0 :(得分:3)

List<Inventory>表示保留List个实例的Inventory。您可以添加元素并稍后迭代到values。因为它是static,所以每个类只有一个。最后,因为没有指定的访问修饰符,所以只能访问同一个包中的类(默认情况下是包私有)。在Java 7+中,这个

static List<Inventory> values = new ArrayList<Inventory>();

可以缩短为

static List<Inventory> values = new ArrayList<>();

至于添加方法(和字段),是的,你需要那些做任何真正有用的事情。举个简单的例子,你可能有一个值字段 1 ,并在构造函数中为它赋值。然后你可以填充你的values并最终迭代 2 它们来显示一些东西

int aValue;
public Inventory(int value) {
    this.aValue = value;
}
public static void main(String[] args) {
    values.add(new Inventory(1));
    values.add(new Inventory(2));
    for (Inventory v : values) { // <-- a for-each loop
        System.out.println(v.aValue);
    }
}

1 因此aValue

2 这里我使用了for-each循环。