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); } }
我只能说 add(); 吧
樓主的意思應該是 “ java 中如何用可增加数组实现 ArrayList”那用 add 和 get() 就可以了啊
谢谢大家。
public class Test {
private String[] users ; //声明一个String 数组,用来保存用户姓名
private int index = 0; //记录数组下标值
public Test(){
users = new String[3]; //初始化数组
}
/**
* 往数组中添加数据
* @param s
*/
public void add(String s){
if(index == users.length){ //判断数组是否已经装满
String[] temp = new String[users.length+1]; //开辟一个临时数组
for(int i=0; i<users.length; i++){ //把旧数组中的数据放入临时数组
temp[i] = users[i];
}
users = temp; //把临时数组的引用在交给以前的数组
}
users[index] = s;
index ++ ; //每存放一个,index 加 1
}
/**
* 获取所有用户
* @return
*/
public String[] findAll(){
return users;
}
public static void main(String[] args) {
Test t = new Test();
//添加测试数据,随便添加多少都行
t.add("a");
t.add("b");
t.add("c");
t.add("d");
//遍历数组
String[] str = t.findAll();
for(String s : str){
System.out.println("---" + s);
}
}
}不知道楼主是不是这个意思,希望对你有帮助
可能我说的不是很清楚 ,但是希望楼主在学习java的同时,也偶然看看数据结构
PS:本人也是小菜 愿与楼主共同进步。
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);
}
}