i!= array.length与i <array.length

时间:2019-03-14 10:52:31

标签: java

=“”

这两个for循环显示相同的结果,我看到第一个for循环的区别超过第二个。它们之间在性能和可读性上有什么区别。

{
        "id": 4,
        "name": "Leo",
        "code": "Test",
        "url": "http://localhost:8000/api/airports/4/",
        "carriers": []
    },
    {
        "id": 5,
        "name": "asdasd",
        "code": "aasdasd",
        "url": "http://localhost:8000/api/airports/5/",
        "carriers": [
            "http://localhost:8000/api/carriers/1/"
        ]
    },
    {
        "id": 6,
        "name": "asdasd",
        "code": "aasdasd",
        "url": "http://localhost:8000/api/airports/6/",
        "carriers": [
            "http://localhost:8000/api/carriers/1/"
        ]
    }

1 个答案:

答案 0 :(得分:3)

在这种情况下,我想说的是可读性是旁观者的眼光,因此对于SO来说,这部分内容将成为话题。

不会有性能上的差异。 (并且一如既往:当您需要担心性能问题时,请担心性能问题。:-))

使用<而不是!=的一个务实原因是,如果您习惯于编写!=,然后需要编写一个增加i的循环在某个时候不止一个,那么您可能更可能意外地编写导致ArrayIndexOutOfBoundsException的代码:

int arr[] = {12, 11, 13, 5, 6}; 
for (int i = 0; i != arr.length; i += 2) {
    System.out.print(arr[i]); // Causes ArrayIndexOutOfBoundsException when it tries to access arr[6]
}

(或者,如果您不是diong数组访问者或类似的人(例如,您不在问题代码中),则是一个无限循环。)