0

選択するオプションとその理由を誰かに提案できますか?

List<MyObject> list =  new ArrayList<MyObject>();
// insert some objects for it

1). for(int i = 0 ; i < list.size() ; i ++ ) {
       System.out.println(list.get(i).getAttribute1());
       System.out.println(list.get(i).getAttribute2());
    }

2). for(int i = 0 ; i < list.size() ; i ++ ) {
        MyObject obj = list.get(i);
        System.out.println(obj.getAttribute1());
        System.out.println(obj.getAttribute2());
    }

はい、私は知っています...どちらも同じ結果を生成しますが、どのオプションがより効率的で、適切な形式で、広く使用されているか、そしてその理由を知りたいですか? 私は、最初のオプションがそれらの間の別のオプションよりも長く書き込むことだけに気付きました。助言がありますか ?

4

1 に答える 1

1

オプション: 1リストで Get が 2 回使用されますが、これは追加のプロセスです。

オプション: 2 get を 1 回だけ使用して、プロセスを削減します。したがって、これはオプションと比較して優れています:1

両方のオプションで、 for ループの反復ごとに list.size() が計算されます。これを回避するには、反復が開始される前に長さを次のように計算できます。

for (int i = 0, length = list.size(); i < length; i ++) {
   // your code here

}

効率的な方法は、for each ループを次のように使用することです。

for (MyObject obj: list) {
  System.out.println(obj.getAttribute1);
}
于 2014-02-05T06:03:42.647 に答える