我一直想不通这两者有什么联系和区别,到底ArrayList[]是动态数组还是ArrayList()是??
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙
解决方案 »
- java 题目 完成两个数组内容的交换 并输出
- 如何不用编写HTML文件就能运行Applet小程序
- java中如何访问不同Jpanel中的控件
- 网络安全策略终极评估(以Web系统描述)
- 关于DVD Mgr的菜鸟问题
- 怎么回事?修改,重新编译applet后,用ie加载。打开的还是原来的applet。
- 100分求:用JAVA写字符串化简的方法
- jbuilder左边的project和structure窗口那是怎么实现的?
- 请问如何获取某个class对应的存储路径?
- Java源代码打成可执行jar包后连接不上sql2000数据库。在eclipse里能连上。求大神帮助,感谢
- java 图形的一个问题
- jsp高手的来帮个忙啊
ArrayList[] 是集合数组,
ArrayList() 是集合?
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();
ArrayList[] lists = new ArrayList[] {list,list2,list3};
ArrayList()是一个对象
ArrayList(即你说的ArrayList())是一个动态数组。
ArrayList[] 是一个数组,且该数组中的元素都必须是 ArrayList 这个动态数组。ArrayList[] 是非动态的,它在创建时就被指定了大小,且该大小再不能改变。
如果使用数组可以这样实现: 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);
}
楼主想说arr[]和ArrayList吧楼主可以这样用:LinkedList<类型> list = new LinkedList<类型>();
list.addAll(Arrays.asList(数组名));
这样,数组中的元素加到list里了。LinkedList增加删除元素效率高
public class Card {
//定义动态数组并初始化
ArrayList arr=new ArrayList(52);
//从1--52数组得到一随机数
int shu = (int) (Math.random() * (arr.size()));
public class Main { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub Card c=new Card();
System.out.print(c.huase());
c.dianshu();
int shu=c.shu;
这样··得到的shu是初始化时候的0,而不是一个0--52的随机数··明白?
而且··我想在得到随机数后将这个随机数删除掉··
private List<Integer> list; public int getShu() {
return shu;
} private int shu; public Card() {
list = new ArrayList<Integer>();
for (int i = 1; i <= 52; i++) {
list.add(i);
}
random();
} public void random(){
shu = (int) (Math.random() * 52);
} public Integer remove(){
return list.remove(shu);//此方法是重载的。remove(int index) remove(Object o) 这里用的第一个
}
public static void main(String[] args){
Card c = new Card();
c.remove();
c.random();
c.remove();
}
}
如果知道话可以这样理解:
ArrayList<ArrayList<Object obj>>()相当于楼主所说的ArrayList[]
而ArrayList就是相当于ArrayList<Object obj>
只是这里面有区别,ArrayList[]是有长度限制的。
而ArrayList<ArrayList<Object obj>>()和ArrayList<ArrayList<Object obj>>()是可以动态增长的。建议楼主去看下马士兵的J2SE课程,很经典的。