public class Fragile_Base_Class_Main {
public static void main(String[] args) {
RandomArrayList randomArrayList = new RandomArrayList();
randomArrayList.add(12);
randomArrayList.add(15);
randomArrayList.add("gosho");
randomArrayList.add("pesho");
randomArrayList.add(4);
randomArrayList.add(3);
randomArrayList.add(7);
randomArrayList.add("dsa");
while (randomArrayList.size() > 0) {
System.out.println(randomArrayList.getRandomElement());
}
}
所以我创建了一个扩展ArrayList的类,并在其中添加了一个获取随机元素然后将其删除的方法。
public class RandomArrayList extends ArrayList {
public Object getRandomElement() {
int rnd = (int) Math.round(Math.random() * (super.size() - 1));
Object temp = super.get(rnd);
super.remove(rnd);
return temp;
}
}
这段代码中的 int rnd = (int) Math.round(Math.random() * (super.size() - 1))
就像是super.size
一样,用我称之为方法的方式引用对象的大小,超级引用超类中的字段,构造函数,方法?