int numMoved = size - index - 1;
解决方案 »
- jfreechart中画createTimeSeriesChart类型图,怎么让折点只显示最大值和最小值!??求教!
- 基础知识很重要!!
- 请问改变windows感观以后,速度会有所改变吗?
- 急,请大家救命啊!!!!!!!!
- 关于Runtime.getRuntime().exec的问题。高分(100)
- java程序,编译通过,jbuilder下,cmd命令行下都可以执行,但是移植到Linux下就出错
- 哪里能下载jdk的源代码,包括java.lang等包的
- 数组反向输出
- 实现过图像处理方面功能的高人请进来帮忙!!!!!
- 如何在Bean里取得Session的值?多谢!
- 复合的类.解决问题当场结帐,为什么我这个程序运行的时候有异常?
- 请高手帮忙,为何输出的时候,JTable没有title!
//myList.add("12");
为什么不用 java.util.ArrayList 呢?重新发明轮子效率不高啊!
private String [] elementData = new String[10];elementData在定义的同时进行了初始化,因此它不能再指向其他数组了。分开来,定义的时候:
private String[] elementData;然后再在构造函数里面加一行:
elementData = new String[10];
at MyArrayList.add(MyArrayListTest.java:38)
at MyArrayListTest.main(MyArrayListTest.java:82)
Exception in thread "main" //我是这么改的,应该对的吧。
//:ArrayList.java
//Creates an ArrayList and shows the datas.
import java.util.*;class MyArrayList {
private String [] elementData ;
private int size;
private MyArrayList() {
size = 0;
elementData = new String [10];
}
public static MyArrayList makeAList() {
return new MyArrayList();
}
private void ensureCapacity() {
if(size > elementData.length) {
int oldCapacity = elementData.length;
int newCapacity = (oldCapacity*3)/2 + 1;
String [] oldData = new String [oldCapacity];
oldData = elementData;
elementData = new String [newCapacity];
System.out.println(elementData.length);
System.arraycopy(oldData,0,elementData,0,size-1);
}
}
public boolean add(String data) {
ensureCapacity();
elementData[size++] = data;
return true;
}
public boolean remove(int index) {
if(index<0 | index >size - 1) {
System.out.println("Out of Range!");
return false;
}
else
if(index == (size - 1)) {
elementData[--size] = null;
return true;
}
else {
int numMoved = size - index;
if(numMoved > 0)
System.arraycopy(elementData,index+1,elementData,index,numMoved);
elementData[--size] = null;
return true;
}
}
public void showList() {
for(int i = 0;i<size;i++)
System.out.print(elementData[i]+" ");
System.out.print("\n");
}
}public class MyArrayListTest {
public static void main(String [] args) {
MyArrayList myList = MyArrayList.makeAList();
myList.add("1");
myList.add("2");
myList.add("3");
myList.add("4");
myList.add("5");
myList.add("6");
myList.add("7");
myList.add("8");
myList.add("9");
myList.add("10");
myList.add("11");
//myList.add("12");
myList.showList();
boolean condition = myList.remove(9);
if(!condition) {
System.out.println("Unable to remove emelentData");
}
else {
System.out.print('\n');
myList.showList();
}
}
}
if(size > elementData.length)应该是
if(size >= elementData.length)
不过这里System.arraycopy(oldData,0,elementData,0,size-1);最后参数应该是size不然会有问题的。结帐!