首先List clents=new ArrayList<ChatClient>();是错的,应该是List<ChatClient> clents=new ArrayList<ChatClient>();
而List<ChatClient> clents=new ArrayList<ChatClient>();也错的原因我估计是:如果你用的是Eclipse,有可能你的JDK版本过于老,没在50以上,所以Eclipse不支持泛型
改正方法:Eclipse中,选中Window-->单击preferences-->单击java--->选中Compliier--->将Compiler complience level 改成60 ,
重新启动Eclipse
输出一下就明白了,list2addAll之后的值为[ [1,2],1,2],list1clear之后的值为[[],1,2]现在的list2长度为3,因为第一个元素是一个list对象,当list1clear()之后list1的值为空,也就是[],addALL相当于把list1的值取出之后在add到list2中也就相当于list2add("1"),list2add("2"),总的来说就是相当于list2add(list1),list2add("1"),list2add("2")
区别就是add添加的是什么就是什么,addALL会把添加的List的值先取出来然后在add到list中
以上回答你满意么?
改成这样
public void deleteFriend(String name,int age){Iterator ite=listiterator();
while(itehasNext()){
Friend f=(Friend)itenext();
if(fgetName()equals(name)&&fgetAge()!=age){
iteremove(f);
Systemoutprintln("成功移除");
}
}
}
原因是你在循环里用list删除了链表的元素,有用ite去获取元素,因此产生了错误
代码如下:
import javautilScanner;public class App {
public static void main(String[] args) {
Scanner scanner = new Scanner(Systemin);
int n = 0, cnt = 0, sum = 0;
for (int i = 0; i < 10; i++) {
n = scannernextInt();
if (n < 0) {
cnt++;
sum += n;
}
}
Systemoutprintln("负数个数:" + cnt);
Systemoutprintln("负数之和:" + sum);
scannerclose();
}
}
运行结果:
以上就是关于java List问题全部的内容,包括:java List问题、java list集合问题、关于java List集合问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)