当前位置:编程学习 > JAVA >>

java定义长度不固定的数组

最近正在做一个小项目 需要用到长度不固定的数组,上网差了N多资料,总觉得不符合自己的要求,果断自己写了一个,总体思想还是不变的。上代码·····
package com.zcf.graduation.utils;

public class Array {

private int length;
private Object[] array;
private Object[] old;
private int index;

public Array add(Object obj){

if(this.array == null || this.array.length <= 0){
this.index = 0;
this.length = 1;
}else{
this.index++;
this.length++;
}
this.old = this.array;
this.array = new Object[this.length];
if(this.old != null && this.old.length > 0){
for(int i = 0;i<this.old.length;i++){
this.array[i] = this.old[i];
}
}
this.array[this.index] = obj;
return this;
}

public Object[] getArray() {
return array;
}

public String toString(){
StringBuffer sb = new StringBuffer();
for(Object obj : array){
sb.append(String.valueOf(obj));
}
return sb.toString();
}
}
java --------------------编程问答-------------------- 你干什么不直接用ARRAYLIST。 --------------------编程问答-------------------- ArrayList中的toCharArray()方法 --------------------编程问答-------------------- 数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组 --------------------编程问答--------------------
引用 3 楼 AA5279AA 的回复:
数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组

++ --------------------编程问答-------------------- 这活生生的一个 ArrayList 的雏形啊。 --------------------编程问答-------------------- 楼主说说 arraylist 不符合要求的地方啊  --------------------编程问答-------------------- 还查了N多资料... --------------------编程问答--------------------
引用 4 楼 qiang0322 的回复:
引用 3 楼 AA5279AA 的回复:数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组
++
2 --------------------编程问答--------------------
引用 8 楼 xu_201205 的回复:
引用 4 楼 qiang0322 的回复:
引用 3 楼 AA5279AA 的回复:数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组
++2

++ --------------------编程问答-------------------- 炫耀贴,为什么不用System.arraycopy --------------------编程问答-------------------- 呃  当时也没想那么多  我想过用arrayList  但是担心arrayList  toArray后list中的的元素顺序会改变  所以就这样写了个   至于写这篇文章 我只是想怕自己忘记以及让有这方面需要的童鞋参考一下  并没有什么炫耀的意思 --------------------编程问答--------------------
引用 4 楼 qiang0322 的回复:
引用 3 楼 AA5279AA 的回复:数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组
++
++ --------------------编程问答-------------------- 谁说说什么地方数组能用arraylist不能用? --------------------编程问答--------------------
引用 3 楼 AA5279AA 的回复:
数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组


-- --------------------编程问答-------------------- arraylist就是动态数组, --------------------编程问答--------------------
引用 11 楼 zhangchaofu13 的回复:
呃  当时也没想那么多  我想过用arrayList  但是担心arrayList  toArray后list中的的元素顺序会改变  所以就这样写了个   至于写这篇文章 我只是想怕自己忘记以及让有这方面需要的童鞋参考一下  并没有什么炫耀的意思

list接口的实现有很多种,arraylist是有序的,并且toarray也是有序的。如果对顺序敏感,可以用linkedlist。
--------------------编程问答--------------------
引用 5 楼 zssazrael 的回复:
这活生生的一个 ArrayList 的雏形啊。

+1.
而且LZ这个效率很低 每次ADD都要重新生成一个数组 ArrayList每次不够的时候长度加倍 是不会像LZ这样每次都需要重新创建的 --------------------编程问答--------------------
引用 3 楼 AA5279AA 的回复:
数组还是有一些功能ArrayList是实现不了的,
楼主的方法其实就是等于自己写了一个list
ArrayList的本质就是数组

LZ也是用的数组。 数组的什么功能arraylist不能实现? --------------------编程问答-------------------- 其实arrayList这个真的很难理解啊 --------------------编程问答--------------------
引用 13 楼 ftiger 的回复:
谁说说什么地方数组能用arraylist不能用?


ArrayList不能存储不同数据类型元素,如:有String a和Integer b,ArrayList不能同时存储a和b,而List<>就可以,这就是ArrayList过时的原因 --------------------编程问答-------------------- 上面说的不准确,是可以存储的,但在使用的时候很可能会报类型不匹配的错误,还会影响性能,所有说ArrayList不是类型安全的 --------------------编程问答--------------------
引用 20 楼 yyw6637 的回复:
引用 13 楼 ftiger 的回复:谁说说什么地方数组能用arraylist不能用?

ArrayList不能存储不同数据类型元素,如:有String a和Integer b,ArrayList不能同时存储a和b,而List<>就可以,这就是ArrayList过时的原因


ArrayList不是List的一个实现吗?
ArrayList过时?你现在用什么?
--------------------编程问答-------------------- 过时了当然可以用,如果你不注重代码的效率和安全性的话我也无话可说 --------------------编程问答-------------------- Java中的数组还不能满足你的需求呀。。。 --------------------编程问答-------------------- ArrayList好多方法都是native修饰的,掉的是底层接口,效率上肯定比你这个要快。 --------------------编程问答--------------------
引用 20 楼 yyw6637 的回复:
引用 13 楼 ftiger 的回复:
谁说说什么地方数组能用arraylist不能用?

ArrayList不能存储不同数据类型元素,如:有String a和Integer b,ArrayList不能同时存储a和b,而List<>就可以,这就是ArrayList过时的原因


ArrayList<Object> 不能储存a和b? --------------------编程问答--------------------
引用 23 楼 yyw6637 的回复:
过时了当然可以用,如果你不注重代码的效率和安全性的话我也无话可说


你的发言很难回复,因为找不到几个对的地方。
“ArrayList不能同时存储a和b,而List<>就可以”
实现类做不到的事情,一个接口却做到了,这显然是不可能的。
<>范型在编译阶段就被消化了,运行时根本没有所谓的范型。所以<>对于提升运行时的效率和安全性没有任何帮助。

一句话就能错得如此没谱。 --------------------编程问答--------------------
引用 27 楼 kaidaotumij 的回复:
引用 23 楼 yyw6637 的回复:过时了当然可以用,如果你不注重代码的效率和安全性的话我也无话可说

你的发言很难回复,因为找不到几个对的地方。
“ArrayList不能同时存储a和b,而List<>就可以”
实现类做不到的事情,一个接口却做到了,这显然是不可能的。
<>范型在编译阶段就被消化了,运行时根本没有所谓的范型。所以<>对于提升运行时的效率和安全……


我必须得顶你一下。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,