zoukankan      html  css  js  c++  java
  • 根据对象的创建位置不同,打印ArrayList里的内容

    求出下面两段程序最终打印的数据:

    一:

    public void testPrintArrayListByDifferObject() {
    		List<Car> arraylist = new ArrayList<Car>();
    		for (int i = 0; i < 3; i++) {
    			Car car = new Car();
    			car.setNum(i);
    			arraylist.add(car);
    		}
    
    		for (int i = 0; i < arraylist.size(); i++) {
    			System.out.println(arraylist.get(i).getNum());
    		}
    	}
    

     二:

    public void testPrintArrayListBySameObject() {
    		List<Car> arraylist = new ArrayList<Car>();
    		Car car = new Car();
    		for (int i = 0; i < 3; i++) {
    			car.setNum(i);
    			arraylist.add(car);
    		}
    		for (int i = 0; i < arraylist.size(); i++) {
    			System.out.println(arraylist.get(i).getNum());
    		}
    	}
    

       第一段代码打印:

              0

              1

              2

      第二段代码打印:

              2

              2

              2

      当时我把第二段代码的打印结果也写成了0,1,2。写错的原因是自己对程序的执行流程没有一个清晰的认识。现在分析一下第二段代码的执行流程:第二段代码中,只创建了一个car对象。在第四行的for循环中,每次car对象都将num设置为当前的循环的i值,例如,当i=0时,将car对象的num值都设置为0,当i=1时,将car的num值都设为1,当i=2时,将car对象的num值都设置为2。所以最终打印结果为2,2,2.

  • 相关阅读:
    Python常用第三方库总结
    Python爬虫技术--入门篇--爬虫介绍
    X sql解惑 25 里程碑问题 答案
    X sql解惑 34 咨询顾问收入问题
    从小变大的照片
    获取属性的顺序
    for...in
    判断元素是否存在
    自由的元素名称
    ES6语法糖-简洁属性表示
  • 原文地址:https://www.cnblogs.com/sosolili/p/7344936.html
Copyright © 2011-2022 走看看