ArrayList[]与ArrayList()的问题

凉岑玉 2010-06-28 11:06:59
我一直想不通这两者有什么联系和区别,到底ArrayList[]是动态数组还是ArrayList()是??
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙

...全文
350 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
凉岑玉 2010-06-30
  • 打赏
  • 举报
回复
各位·我总算明白了··我原来纠结的是如何给动态数组赋值的问题··现在明白了··运用一个循环就可以··谢谢大家了··小弟结贴了··
cuisichao 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 smileflyer 的回复:]
Java code
ArrayList list = new ArrayList();
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();

ArrayList[] lists = new ArrayList[] {lis……
[/Quote]
很详细
cuisichao 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 woacyj 的回复:]
ArrayList()是动态数组,ArrayList[]是Arraylist对象的数组
[/Quote]
赞成
11
liuyc875938018 2010-06-30
  • 打赏
  • 举报
回复
不知道楼主知道泛型不?
如果知道话可以这样理解:
ArrayList<ArrayList<Object obj>>()相当于楼主所说的ArrayList[]
而ArrayList就是相当于ArrayList<Object obj>
只是这里面有区别,ArrayList[]是有长度限制的。
而ArrayList<ArrayList<Object obj>>()和ArrayList<ArrayList<Object obj>>()是可以动态增长的。建议楼主去看下马士兵的J2SE课程,很经典的。
xiaoqiao_82 2010-06-30
  • 打赏
  • 举报
回复
ArrayList()既不是数组也不是对象,而是某个对象的构造方法吧:)前面不加new会报错。
bai_feng 2010-06-29
  • 打赏
  • 举报
回复
其实蛮简单的一个问题,ArrayList()本身是一个List集合,其实内部是一个可变长度的数组,而ArrayList[]这个就是你自己定义的一个规定大小的数组(在初始化的时候给定大小),至于ArrayList集合内部怎么实现可变大小,参考JDK源代码。
ljhabc1982 2010-06-29
  • 打赏
  • 举报
回复
4lou
wukongwork 2010-06-29
  • 打赏
  • 举报
回复
同意3楼的说法
高亮 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 cenhuineng 的回复:]
我一直想不通这两者有什么联系和区别,到底ArrayList[]是动态数组还是ArrayList()是??
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙
[/Quote]

楼主想说arr[]和ArrayList吧

楼主可以这样用:

LinkedList<类型> list = new LinkedList<类型>();
list.addAll(Arrays.asList(数组名));
这样,数组中的元素加到list里了。LinkedList增加删除元素效率高
2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dr_lou 的回复:]
ArrayList[]是一个数组
ArrayList()是一个对象
[/Quote]
xcehn 2010-06-29
  • 打赏
  • 举报
回复
5楼图片不错~~
wakeUpDoNottLazy 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 cenhuineng 的回复:]
我一直想不通这两者有什么联系和区别,到底ArrayList[]是动态数组还是ArrayList()是??
[/Quote]
这里的动态是指“数组的大小可以改变”。
ArrayList(即你说的ArrayList())是一个动态数组。
ArrayList[] 是一个数组,且该数组中的元素都必须是 ArrayList 这个动态数组。ArrayList[] 是非动态的,它在创建时就被指定了大小,且该大小再不能改变。


[Quote=引用楼主 cenhuineng 的回复:]
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙
[/Quote]
如果使用数组可以这样实现:

Integer[] aa = {1,2,3};
int a = aa[0];
aa[0] = null;//实现删除
for(Integer i : aa){
System.out.println(i);
}

如果使用动态数组,即 ArrayList 可以这样实现:

ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);

int i = arrayList.get(0);
arrayList.remove(0);// 实现删除
for(int a : arrayList){
System.out.println(a);
}
fyjava1984 2010-06-29
  • 打赏
  • 举报
回复
建议你看一下java API 中的 ArrayList
leon0098 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dr_lou 的回复:]
ArrayList[]是一个数组
ArrayList()是一个对象
[/Quote]
ArrayList[]是一个数组,数组里面的每个元素都是一个ArrayList对象,而ArrayList()只是一个ArrayList对象
rumlee 2010-06-29
  • 打赏
  • 举报
回复
如果把ArrayList也理解为数组的话,那ArrayList[]就是数组的数组了。
dr_lou 2010-06-29
  • 打赏
  • 举报
回复
ArrayList[]是一个数组
ArrayList()是一个对象
smileflyer 2010-06-29
  • 打赏
  • 举报
回复
		ArrayList list = new ArrayList();
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();

ArrayList[] lists = new ArrayList[] {list,list2,list3};
woacyj 2010-06-29
  • 打赏
  • 举报
回复
ArrayList()是动态数组,ArrayList[]是Arraylist对象的数组
lacus87 2010-06-29
  • 打赏
  • 举报
回复
我肤浅了,莫非
ArrayList[] 是集合数组,
ArrayList() 是集合?
queen25 2010-06-29
  • 打赏
  • 举报
回复
http://www.360doc.com/relevant/06/0902/23/11053_197249.shtml
加载更多回复(8)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧