第二个虽没错但是逻辑上有问题,使用foreach迭代,但是你却只是为了获取第0个。

解决方案 »

  1.   

    for (Object order : query.list()) {
    return (Order)order;
    }query  是null 怎么办。
      

  2.   

    同意二楼的说法,要获取list的第一个元素用get(0)就行了,循环的目的是为获取list每一个元素并执行一定操作,不论性能如何,这种用法就不是设计者的初衷。个人猜想:get操作仅用到简单寻址,循环需要生成迭代器,多了额外的开销,性能应该低。
      

  3.   

    支持第一种,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);
    }
    }
      

  4.   


    明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
      

  5.   


    明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
    100万个,你会放集合里,内存不解释
      

  6.   


    明显说反了!!!你弄个有100万个元素的LinkedList,然后get(i)遍历一下试试看
    100万个,你会放集合里,内存不解释
    100万只是例子,重点是LinkedList.get(N),依据N是否超过size/2,head.next.next.next....N次.next或者tail.prev.prev.....
    而foreach循环,用的是Iterator,保留当前循环到哪个节点
      

  7.   

    list的内容是数据库里取的吧?
    你直接限制一个不就好了,是吧,返回一个object
      

  8.   

    当然是第一种好
    第二种实际上调用的是iterator方法获取了一个迭代器
    你又不需要迭代,这样完全是浪费资源
      

  9.   

    第一种比第二种效率高没问题
    但第三种运用在某些可迭代类上性能是会更高的
    具体应该用哪种视具体情况而定,不存在哪个就一定好
    你看下源码,第三种实际上是第一种的封装。
    自己写几个测试例子能说明一切。
    你用数组肯定和第一种一样,我说的是Iterable可迭代类
      

  10.   

    第一种比第二种效率高没问题
    但第三种运用在某些可迭代类上性能是会更高的
    具体应该用哪种视具体情况而定,不存在哪个就一定好
    你看下源码,第三种实际上是第一种的封装。
    自己写几个测试例子能说明一切。第一种比第二种效率高没问题
    但第三种运用在某些可迭代类上性能是会更高的
    具体应该用哪种视具体情况而定,不存在哪个就一定好
    你看下源码,第三种实际上是第一种的封装。
    自己写几个测试例子能说明一切。
    你用数组肯定和第一种一样,我说的是Iterable可迭代类
    前两种和第三种的性能确实是要看使用场景,在某些场景下,譬如只为遍历元素的时候,第三种性能是最好的!如果一旦要对元素进行修改,第三种的性能就不占上风了!个人见解和经验!
      

  11.   

    只为取第一个元素的话,建议使用第一种!Object obj = null != list&& list.size() > 0?list.get(0):null
      

  12.   

    第二个吧。如果没有就在外面返回null