下课睡觉 2016-12-13 08:30 采纳率: 16.7%
浏览 5889

java list.get(position)返回的是一个新的对象还是地址?

    假设有一个类 class A;有一个集合List<A> list;集合里面存放了很多A;
    这时新建了一个A a =  list.get(5);这个a和list.get(5)是同一个对象吗?
  • 写回答

4条回答

  • 暗余 Java领域优质创作者 2022-04-07 16:17
    关注
    1. List 获取数据代码: Lists.newArrayList().get()
    2. 点进去之后源码为:
      public E get(int index) {
       Objects.checkIndex(index, size);
       return elementData(index);
      
      }
    3. 拿到elementData 源码为:
      E elementData(int index) {
       return (E) elementData[index];
      
      }
    4. 拿到elementData 信息为:transient Object[] elementData;

    综上可以发现,get方法实际上就是数组的获取指定位置索引的数据信息;由于集合内只能放对象,不能放基本类型,所以里面存储的都是引用类型;且没有任何new 新对象的操作,故是一样的;

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条