方法返回List第一个元素,以下哪种好? 第二个虽没错但是逻辑上有问题,使用foreach迭代,但是你却只是为了获取第0个。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for (Object order : query.list()) {return (Order)order;}query 是null 怎么办。 同意二楼的说法,要获取list的第一个元素用get(0)就行了,循环的目的是为获取list每一个元素并执行一定操作,不论性能如何,这种用法就不是设计者的初衷。个人猜想:get操作仅用到简单寻址,循环需要生成迭代器,多了额外的开销,性能应该低。 支持第一种,for循环的性能比较:public static void main(String[] args) { int [] a={1,2,3,4,5,6,7}; //第一种:性能最高 int length=a.length; for(int i=0;i<length;i++){ System.out.println("性能最高:"+a[i]); } //第二种:性能次之 for(int i=0;i<a.length;i++){ System.out.println("性能次之:"+a[i]); } //第三种:性能最差 for (int i : a) { System.out.println("性能最差:"+i); } } 明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看 明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看100万个,你会放集合里,内存不解释 明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看100万个,你会放集合里,内存不解释100万只是例子,重点是LinkedList.get(N),依据N是否超过size/2,head.next.next.next....N次.next或者tail.prev.prev.....而foreach循环,用的是Iterator,保留当前循环到哪个节点 list的内容是数据库里取的吧?你直接限制一个不就好了,是吧,返回一个object 当然是第一种好第二种实际上调用的是iterator方法获取了一个迭代器你又不需要迭代,这样完全是浪费资源 第一种比第二种效率高没问题但第三种运用在某些可迭代类上性能是会更高的具体应该用哪种视具体情况而定,不存在哪个就一定好你看下源码,第三种实际上是第一种的封装。自己写几个测试例子能说明一切。你用数组肯定和第一种一样,我说的是Iterable可迭代类 第一种比第二种效率高没问题但第三种运用在某些可迭代类上性能是会更高的具体应该用哪种视具体情况而定,不存在哪个就一定好你看下源码,第三种实际上是第一种的封装。自己写几个测试例子能说明一切。第一种比第二种效率高没问题但第三种运用在某些可迭代类上性能是会更高的具体应该用哪种视具体情况而定,不存在哪个就一定好你看下源码,第三种实际上是第一种的封装。自己写几个测试例子能说明一切。你用数组肯定和第一种一样,我说的是Iterable可迭代类前两种和第三种的性能确实是要看使用场景,在某些场景下,譬如只为遍历元素的时候,第三种性能是最好的!如果一旦要对元素进行修改,第三种的性能就不占上风了!个人见解和经验! 只为取第一个元素的话,建议使用第一种!Object obj = null != list&& list.size() > 0?list.get(0):null 第二个吧。如果没有就在外面返回null java poi,jxl遇到上标下标如何处理 Ajax技术与proxy缓存问题 提出一个挑战性问题请大家思考 很小的问题, 相信你一定能回答 求教,如何让jcombobox的选中项在EditorComponent显示不同的值 如何表示一个本地文件的路径? 急,正则表达式如何实现下列匹配? 怎样从一副jpeg图片中生成一副缩略图 调用bean和jsp的问题? 那位大侠有rational Visio2002注册号啊,(我的是乱码),请给我,谢谢!! Java 程序 关于Properties 类的 Store方法的问题 InputStream
return (Order)order;
}query 是null 怎么办。
public static void main(String[] args) {
int [] a={1,2,3,4,5,6,7};
//第一种:性能最高
int length=a.length;
for(int i=0;i<length;i++){
System.out.println("性能最高:"+a[i]);
}
//第二种:性能次之
for(int i=0;i<a.length;i++){
System.out.println("性能次之:"+a[i]);
}
//第三种:性能最差
for (int i : a) {
System.out.println("性能最差:"+i);
}
}
明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
100万个,你会放集合里,内存不解释
明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
100万个,你会放集合里,内存不解释
100万只是例子,重点是LinkedList.get(N),依据N是否超过size/2,head.next.next.next....N次.next或者tail.prev.prev.....
而foreach循环,用的是Iterator,保留当前循环到哪个节点
你直接限制一个不就好了,是吧,返回一个object
第二种实际上调用的是iterator方法获取了一个迭代器
你又不需要迭代,这样完全是浪费资源
但第三种运用在某些可迭代类上性能是会更高的
具体应该用哪种视具体情况而定,不存在哪个就一定好
你看下源码,第三种实际上是第一种的封装。
自己写几个测试例子能说明一切。
你用数组肯定和第一种一样,我说的是Iterable可迭代类
但第三种运用在某些可迭代类上性能是会更高的
具体应该用哪种视具体情况而定,不存在哪个就一定好
你看下源码,第三种实际上是第一种的封装。
自己写几个测试例子能说明一切。第一种比第二种效率高没问题
但第三种运用在某些可迭代类上性能是会更高的
具体应该用哪种视具体情况而定,不存在哪个就一定好
你看下源码,第三种实际上是第一种的封装。
自己写几个测试例子能说明一切。
你用数组肯定和第一种一样,我说的是Iterable可迭代类
前两种和第三种的性能确实是要看使用场景,在某些场景下,譬如只为遍历元素的时候,第三种性能是最好的!如果一旦要对元素进行修改,第三种的性能就不占上风了!个人见解和经验!