JAVA 代码问题

import java.util.*;
public class ContainerDemo {
public static void main(String args[]){
Collection c1= new ArrayList(25);
c1.add(new String("One"));
c1.add(new String("Two"));
String s = "Three";
c1.add(s);
for(int i=0;i < c1.size();i++)
System.out.println(c1.get(i));
Object[] array = c1.toArray(); //什么意思
String[] str = (String[])c1.toArray(new String[0]); //什么意思
Collection c2 = new ArrayList(2);
c2.add(new String("Four"));
c2.add(new String("Five"));
c1.addAll(c2);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
Collection c3 = new ArrayList(2);
c3.add(new String("Two "));
c3.add(new String("Five"));
c1.remove(c3);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
c1.retainAll(c2);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
}

}

而且最后又错误,显示Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method get(int) is undefined for the type Collection
The method get(int) is undefined for the type Collection
The method get(int) is undefined for the type Collection
The method get(int) is undefined for the type Collection

at ContainerDemo.main(ContainerDemo.java:10)

。。。。

第1个回答  2011-01-08
最后的错误是由于c1.get(i)引起的。
你的c1是定义为了 “实现了Collection接口的ArrayList对象”,没错,ArrayList对象有get(int i)这个方法,但这个方法是实现List接口中的方法。所以会有错误:The method get(int) is undefined for the type Collection 。//Collection中未定义get(int)方法

你问的那两个地方什么意思,一楼说的很清楚了
第2个回答  2011-01-08
这样就没错了,我在改动的后面加了注释
public static void main(String args[]){
List c1= new ArrayList(25);//改动
c1.add(new String("One"));
c1.add(new String("Two"));
String s = "Three";
c1.add(s);
for(int i=0;i < c1.size();i++)
System.out.println(c1.get(i));
Object[] array = c1.toArray();//什么意思:c1变成一个普通数组
String[] str = (String[])c1.toArray(new String[0]);
//什么意思:把c1变成一个普通的String类型的数组
List c2 = new ArrayList(2);//改动
c2.add(new String("Four"));
c2.add(new String("Five"));
c1.addAll(c2);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
List c3 = new ArrayList(2);//改动
c3.add(new String("Two "));
c3.add(new String("Five"));
c1.remove(c3);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
c1.retainAll(c2);
for(int i=0;i<c1.size();i++)
System.out.println(c1.get(i));
}本回答被提问者采纳
第3个回答  2011-01-08
The method get(int) is undefined for the type Collection
System.out.println(c1.get(i));get(i)不适用于集合,你想取值可以用iterator
Object[] array = c1.toArray(); //什么意思
将c1这个集合上转成对象数组
String[] str = (String[])c1.toArray(new String[0]); //什么意思
这句我也看不明白。要查下api
第4个回答  2011-01-08
1楼说的很清楚,并且get()方法没法用集合类的对象使用,要向下转型
相似回答