package text;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class A { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
he(); }
static public List he(){
List li=new ArrayList();

System.out.println("实验是直接调出所有的数字还是从方法一开始执行");
for (; ; ) {
System.out.println("存数字");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
li.add(a);
if(a==10){

for (int i = 0; i < li.size(); i++) {
System.out.print(li.get(i));
}

break;
}


}

return li;


}}Main 里调用此方法,是按照流程走的,请问如何直接调用LI集合里储存的数字,而不用走he方法中的流程JavaArrayList

解决方案 »

  1.   

    个人浅见:
    在类里加一变量,List list1 = null;
    在调用方法里加一判断,如果list1 == null, 这时没有结果,list1为null. 必须执行代码。
    而如果list1 != null, 则不用再执行了。直接返回即可。import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;public class A {
    private static List list1 = null;//用于存贮结果。
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(he());
    System.out.println(he());
    System.out.println(he()); } static public List he() {
    if (list1 != null) {// 如果已经有内容了,直接返回。
    return list1;
    } else {
    List li = new ArrayList(); System.out.println("实验是直接调出所有的数字还是从方法一开始执行");
    for (;;) {
    System.out.println("存数字");
    Scanner input = new Scanner(System.in);
    int a = input.nextInt();
    li.add(a);
    if (a == 10) { for (int i = 0; i < li.size(); i++) {
    System.out.print(li.get(i));
    } break;
    }
    }
    list1 = li;//保存。
    return li;
    }
    }
    }
      

  2.   

    List list = he();用个list接收 以后用的时候调list即可