查询一些性能调整

时间:2015-06-29 07:40:07

标签: java list logic

我对Java中的数据结构有一个简单的问题。 如果我在Java中有一个返回数据结构的方法,请说像这样的

private List<String> getResults() {
    List<String> data = new ArrayList<String>();
    data.add("One");
    data.add("Two");
    data.add("three");
    data.add("Four");
    return data;
}

我想直接遍历这个列表,因为这个方法就像这个

 void iterate() {
    for (String value : getResults())
        System.out.println(value);
 }

这是否意味着对于每个打印的值,方法 getResults()总是被调用,或者它只是缓存在内存中的某个地方,并且总是在此上下文中引用而不是这个..

 void iterate() {
    List<String> results = getResults();
    for (String value : results)
        System.out.println(value);
 }

扩展知识库.Thanx

1 个答案:

答案 0 :(得分:2)

getResults()只会被调用一次,以便创建一个Iterator<String>实例,该实例稍后用于检索String