额··太打击了吧??那我贴代码吧·· 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的随机数··明白? 而且··我想在得到随机数后将这个随机数删除掉··
表达的确不敢恭维。public class Card { 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() 是集合?
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课程,很经典的。