2 回答
TA贡献1909条经验 获得超7个赞
这是很简单只需要创建的列表,Object使用类型ArrayList或LinkedList在ObjectList类并实现功能如下
public class ObjectList{
private ArrayList<Object> objects;
public ObjectList(int size)
{
objects = new ArrayList<Object>(size);
}
public String add (Object object)
{
objects.add(object);
//anything you would like to return I'm just returning a string
return "Object Added";
}
public void remove (int index)
{
objects.remove(index);
}
public boolean isEmpty()
{
return objects.isEmpty();
}
public int getTotal()
{
return objects.size();
}
public Object getObject(int index)
{
return objects.get(index);
}
}
在isFull()没有必要的,因为ArrayList大小可动态变化。您可以使用简单的数组代替ArrayList然后实现该isFull()函数。
此外,当使用 getgetObject()函数获取对象时,您需要在使用该函数之前将其转换为正确的类型。在您的代码中g.bark()不起作用,因为Object没有树皮功能
Object g = ol.getObject(1);
//This can give a runtime error if g is not a Dog
//Use try catch when casting
Dog d = (Dog)g;
d.bark();
编辑
isFull()如果使用数组而不是ArrayList为了简单起见,请使用该ArrayList版本,这就是您将如何实现和其他功能的方式
public class ObjectList{
private Object[] objects;
private int size = 0;
private int currentIndex = 0;
public ObjectList(int size)
{
this.size = size;
objects = new Object[size];
}
private boolean isFull() {
if(currentIndex == size)
return true;
else
return false;
}
public String add (java.lang.Object object)
{
if ( ! isFull() ) {
objects[currentIndex] = object;
currentIndex++;
return "Object added";
}
return "List full : object not added";
}
public void remove (int index)
{
if( !isEmpty() ) {
//shifting all the object to the left of deleted object 1 index to the left to fill the empty space
for (int i = index; i < size - 1; i++) {
objects[i] = objects[i + 1];
}
currentIndex--;
}
}
public boolean isEmpty()
{
if(currentIndex == 0)
return true;
else
return false;
}
public int getTotal()
{
return currentIndex;
}
public java.lang.Object getObject(int index)
{
if(index < currentIndex)
return objects[index];
else
return null;
}
}
TA贡献1807条经验 获得超9个赞
您似乎想要实现的是“扩展” ArrayList的功能并创建自定义对象列表。您可以做的是创建一个扩展 ArrayList 的类并定义/覆盖您想要的任何其他方法。
public class ObjectList extends ArrayList<Object> {
//constructor with initial capacity
private int length;
public ObjectList(int size){
super(size);
this.length= size;
}
public Object getObject(int index){
return this.get(index);
}
}
现在您拥有从 ArrayList 类和getObject方法继承的添加和删除函数。
关于isFull方法,您可以检查 ObjectList 类的大小是否等于它被实例化的大小
if(this.size() == this.length){
return true
}
return false;
并获得总计
public int getTotal(){
return this.size();
}
添加回答
举报