【发布时间】:2012-10-31 15:49:42
【问题描述】:
所以我是一名大学生,只是想寻求一点帮助和理解,我有一位教授不允许我们使用 ArrayList 等 java 预先编写的类,所以我想弄清楚如何修改我当前的封装数组类以使用泛型,这样我就不必在我的程序的应用程序类中做太多的转换
public class ArrayClass {
private Object[] objArray;
private int index = 0;
public static final int MAX_SIZE = 100;
public ArrayClass(){
objArray = new Object[100];
}
public ArrayClass(int numSlots){
objArray = new Object[numSlots];
}
public ArrayClass(Object[] anArray, int newIndex){
objArray = new Object[newIndex];
for(int i=0; i<newIndex; i++){
objArray[i] = anArray[i];
}
index = newIndex;
}
//return object array, accessor
public Object[] getstrArr(){
return objArray;
}
//return # of actual data in array, accessor
public int getIndex(){
return index;
}
//return an object at given pos, accesor
public Object getObject(int pos){
return objArray[pos];
}
//assign a new object array, mutator
public void setObjArr(Object[] aStrArr){
for(int i=0; i<index; i++){
objArray[i] = aStrArr[i];
}
}
//assign a new index, mutator
public void setIndex(int anIndex){
index = anIndex;
}
//insert a new string into the array if there is room, increment index
public void add(Object someObj){
if(index < objArray.length){
objArray[index] = someObj;
index++;
}
}
//return the string with contents of array
public String toString(){
String output = " ";
for(int i=0; i<index; i++){
output = output + objArray[i].toString();
}
return output;
}
//return true if calling object is equivalent to argument
public boolean equals(Object someObj){
for(int i=0; i< index; i++){
if(objArray[i].equals(someObj))
return true;
}
return false;
}
}
【问题讨论】:
-
不允许使用arrayList,因为老师认为我们需要更多地了解如何操作列表,但更重要的是因为她只是讨厌生活,我想。
-
哈哈哈大概吧。这个限制实在是太傻了,你可以在网上查一下 ArrayList 的实现,复制一下就行了。
标签: java generics template-classes