请教大家一个java问题

来源:百度知道 编辑:UC知道 时间:2024/09/27 18:20:30
import java.util.*;
public class AddingGroups {

public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<Integer>
(Arrays.asList(1,2,3,4,5));
Integer[] moreInts = {6,7,8,9,10};
Collections.addAll(collection,11,12,13,14,15);
Collections.addAll(collection,moreInts);
List<Integer> list = Arrays.asList(16,17,18,19,20);
list.set(1, 99);
}

}
这应该是讲Arrays.asList(),Collection.addAll(),Collections.addAl()区别的一个例子,谁能帮忙注释(解释)一下上面的程序,新手求教!
还有一个问题foreach的语法结构?
谢谢,在线等!!
回mlhm2:
可是这是thinking in java书上的一个源程序,就是那么写的,而且我也调试过,没错误

1楼正解。辛苦了,虽然对于一个初学者提出的问题或许过于专业与深奥了,但我倒宁愿楼主把分给你,呵呵~
我这里再补充下吧,平民化一下。
通过提问,我想作者至少对泛型是不够了解甚至是没有接触过吧?还有就是不知道你对Collection集合框架不够了解。所以你如果想要很明白的话,应该1,先去百度搜索“java集合框架”,学习一下,2.再搜索“泛型”(这是jdk1.5的新特性)。
Collections只是一个普通类,他提供对集合框架的某些特殊支持。而Collection是一个接口,千万别弄混淆哦。上面用的的.addAll()方法的声明是这样的,1喽却没把这个你要问的摆出来...
public static <T> boolean addAll(Collection<? super T> c, T... a);
如果你了解泛型,就不用我解释了,如果不了解,我也不解释了,简单点讲吧,Collections类通过此方法,把符合参数c的泛型所指定的参数类型的一连串参数a(数组也是一连串的 T...可以看做Integer...,即可以有0~无限个连续的同类型的参数,可以是一个数组,这里...也是java中的一个运算符)加入到c这个实现了Collection接口的集合中,返回值1楼已经解释过了。
而2楼挺人性化,不过让新手理解可能会出问题:“Collections.addAll(collection,moreInts); // 将所有指定元素添加到指定 collections 中。”,这是将moreInts添加到collection中。我知道你这里的collections是指代中文“集合”,但2楼后面紧跟了这句“Collections可以放对象 ”,简直就是在引诱别人往错处想...但希望楼主别把collections当成Collections类了哦。
好了,楼主把泛型跟集合框架好好了解一下吧。先简单再解释下:你提供的程序主要是将1,2,3,4,5还有11,12,13,14,15通过addAll方法添加到collecion对象中。然后Collections.addAll(collection,moreInts);把moreInts的6,7,8,9,10也添加到collect