解决方案 »
- 求解开发图算法时 怎没用java来生成一个随即图 java中有图的ATD但是如何实现的~~~
- eclipse常用快捷键【共享】
- 基本运算之迷
- java调用oracle存储过程,返回类型record
- 如何对一个类的静态对象赋几个变量值进来,我这种说法是否正确有?请大家看看我写的代码。
- 请问java中有没有和位操作有关的api?
- 为什么是乱码呢?很弱的问题
- 一个简单的画图程序
- 请问DriverManager.getConnection(jdbc:odbc:数据源","sa","");
- 关于框架的选择
- 菜鸟问题:想依次打印出b1,b2,b3,b4的值:1、2、3、4
- java开发第三方提示接入授权文件失败???
当接受的元素个数达到数组长度时,创建一个更大的数组,如 new int[200],将原来数组的元素复制过来。
以此反复。
List<Integer> list = new ArrayList<Integer>()然后使用add()方法添加元素。
我用了一个笨办法,通过数组复制来实现。import java.util.*;public class ArrayTest {
public static void main(String[] args){
int[] a= new int[2];
int[] b;
Scanner scanner = new Scanner(System.in);
int input =0;
int i =0;
while((input=scanner.nextInt())>=0){
a[i]=input;
i++;
if(i==a.length){
b= new int[a.length*2];
System.arraycopy(a, 0, b, 0, a.length);
a=b;
System.out.println("length expands to "+a.length);
}
}
System.out.printf("%d element(s) entered\n",i);
;
if(i < a.length){
int[] c = new int[i];
System.arraycopy(a, 0, c, 0, i);
a=c;
}
System.out.println("loop ended");
for (int e : a)
System.out.print(e+"\t");
}}
+1,然后直接toArray()就能得到数组类型了
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}//有一个初始化大小,默认是10
public ArrayList() {
this(10);
}//当你要添加数据的时候,如果内容空间不够,会调用ensureCapacity进行扩容。
public boolean add(E e) {
ensureCapacity(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
//会调用ensureCapacity方法进行扩容
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity);
}
}