首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我向object添加对象时,为什么它的ArrayList显示为空?

当向object添加对象时,如果其ArrayList显示为空,可能有以下几个原因:

  1. 添加对象的操作未成功:可能在添加对象的过程中出现了错误,导致对象并没有被成功添加到ArrayList中。这可能是因为对象的数据结构不正确、数据类型不匹配或者添加操作被其他代码阻塞等原因。需要仔细检查添加对象的代码逻辑,确保没有错误。
  2. ArrayList未正确初始化:如果在添加对象之前,ArrayList没有被正确初始化,那么它就会显示为空。需要确保在添加对象之前,已经通过实例化的方式创建了一个ArrayList对象。
  3. 对象未被正确赋值:可能对象并没有被正确地赋值给ArrayList。这可能是因为引用传递时出错,或者对象的引用没有被正确地传递给ArrayList。需要检查对象的引用传递方式,确保对象被正确地赋值给ArrayList。
  4. ArrayList显示为空的误解:有时候,ArrayList显示为空并不代表其中没有任何元素。这可能是由于ArrayList的toString()方法的实现方式导致的。toString()方法默认只会显示ArrayList的容量和当前元素数量,而不会列举每个元素的具体内容。因此,即使ArrayList中有对象,toString()方法仍然会显示为空。需要使用其他方式验证ArrayList中是否有元素,如遍历ArrayList并打印每个元素。

总结起来,当向object添加对象时,如果其ArrayList显示为空,需要检查添加操作、ArrayList的初始化、对象的赋值以及对ArrayList显示为空的误解等方面,以找出具体原因并解决问题。

注意:以上答案中并没有提及任何云计算品牌商的产品信息。如果需要推荐腾讯云相关产品,可根据具体场景和需求,在腾讯云官方网站上查找相应产品和产品介绍。

相关搜索:为什么object2的名称显示为空?当我添加HTML或CSS时,为什么我的网站为空?当我向其中添加了项目时,为什么我的集合是空的?为什么当我的div的高度设置为0时,它仍然显示?为什么当我尝试添加ArrayList元素时,程序会提示它存在,尽管它是新的?当我使用Action<>设置对象时,分配的对象始终为空为什么是$(…)当我的输入为空时,.val() == "“false?当我记录值[ts][ionic2]时,为什么它显示为undefined?当我打开视图时,模型mvc中的对象为空当我尝试将对象写到控制台时,React函数显示该对象为空为什么我的<br />标签在呈现javascript时显示为[object Object]?html5:为什么当我要求进度条显示为红色时,它却显示为绿色?当我为函数命名并从控制台触发它时,它可以完美地工作,但是当我向它添加window.onload =时,它永远不会启动每当我添加新片段或新的空Java类时,它都无法识别其XML文件,并显示为红色当我打印我的对象时,对象的种类显示为null,而不是种类(例如,它应该是balrog)当使用R向Plotly对象迭代添加轨迹时,为什么只显示最后添加的轨迹?当我向列表添加新项时,为什么我的代码不更新当我使用ajax发送数据时,为什么我的变量总是为空为什么我的列在不为空时显示为NaN?为什么当我追加我的空列表时,我的长度为1的列表?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ArrayList源码解析

第二种方式是编码规范的要求我们这么写的,传入一个初始化的容量。这么做的目的主要是防止向集合中添加数据时,由于集合扩容导致的性能下降问题。...其实他的本质就是一个Object[] , 我们每次向List中添加一个元素,他都会把元素存储到他的一个Object[] 中。那么问题是,我创建一个多大的数组合适呢?...当我们向集合中添加元素的时候,集合首先会判断当前的数组容量能否容纳得下所需添加的元素,如果容纳不下,就会触发自动扩容机制。...从jdk8开始,集合不是你new完了就把空间创建出来的,从代码也可以看出来,我们new完的集合(0参和无参),实际上就给了一个空数组,只有当我们向集合中添加元素的时候,才会根据长度初始化数组的长度。...也就是当我们向集合中添加元素的时候,如果元素个数小于10,那么这个结果就是10, 如果元素个数大于10了,就取当前的最大值。

30210

arraylist linkedlist底层实现原理

线程B也向此ArrayList 添加元素,因为此时 Size 仍然等于 0 (注意哦,我们假设的是添加一个元素是要两个步骤哦,而线程A仅仅完成了步骤1),所以线程B也将元素存放在位置0。...四、ArrayList的主要成员变量 private static final int DEFAULT_CAPACITY = 10; 当ArrayList的构造方法中没有显示指出ArrayList的数组长度时...private static final Object[] EMPTY_ELEMENTDATA = {}; 当ArrayList的构造方法中显示指出ArrayList的数组长度为0时,类内部将EMPTY_ELEMENTDATA...的数组长度时,类内部使用默认缺省时对象数组为DEFAULTCAPACITY_EMPTY_ELEMENTDATA。...这也解释了为什么要把情况分为需要查找的对象是否为空两种情况讨论,不然的话空对象调用equals方法则会产生空指针异常。

43840
  • Java集合源码分析之ArrayList

    该类封装了一个动态再分配的Object【】数组,每一个类对象都有一个capacity属性,表示他们所封装的Object【】数组长度,当向ArrayList中添加元素时,该属性值会自动增加。...ArrayList的用法和Vector向类似,但是Vector是一个较老的集合,具有很多缺点,不建议使用。...说明:底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。...当我们调用add方法时,实际上的函数调用如下: ? 说明:程序调用add,实际上还会进行一系列调用,可能会调用到grow,grow可能会调用hugeCapacity。...,那么elementData被初始化为大小为6的Object数组,在调用add(8)方法时,具体的步骤如下: ?

    35620

    Java泛型深入理解「建议收藏」

    stringValues = new ArrayList(); //可以向数组中添加任何类型的对象 stringValues.add(1); //问题1...然而,当我们使用数据的时候,需要将获取的Object对象转换为我们期望的类型(String),如果向集合中添加了非预期的类型(如Integer),编译时我们不会收到任何的错误提示。...我们在介绍泛型时指出向ArrayList中插入String类型的对象,编译时会报错。现在为什么又可以了呢?...当我们从集合中获取元素时,默认会将对象强制转换成泛型参数指定的类型(这里是Integer),如果放入了非法的对象这个强制转换过程就会出现异常。...那么当我们使用arrayList2引用用get()方法取值的时候,返回的都是String类型的对象,可是它里面实际上已经被我们存放了Object类型的对象,这样,就会有ClassCastException

    84020

    ArrayList到底是什么?

    } 注意,当我们创建的时候,elementData这个数组的数组长度为0,但当我们添加数据的时候他的默认长度才会变成10。...比较重要的几个方法 Add ArrayList已经是具体的实现类了,所以其实现了list接口中所有的定义方法。首先前面说到ArrayList的默认大小为0,只有第一次添加数据的时候才会设为10。...(注意,这个方法不会缩减数组的长度,只是将最后一位置空而已…) 下面是根据对象进行remove。它会循环编译所有对象,找到你要移除对象的索引位置。...前面我们介绍了将数组元素置为空后,它的数组大小没变。那么通过clear方法。他的数组大小会变吗?...(包括null值)去除,例如:数组长度为10,其中只有前三个元素有值,其他为空,那么调用该方法之后,数组的长度变为3。

    94520

    【数据结构】ArrayList原理及实现学习总结

    Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。...例如初次添加时,size为0,add将elementData[0]赋值为e,然后size设置为1(类似执行以下两条语句elementData[0]=e;size=1)。...具体实现如下:  (1) 当调用下面这两个方法向数组中添加元素时,默认是添加到数组中最后一个元素的后面。内存结构变化如下:  ?...调整数组容量ensureCapacity (1)从上面介绍的向ArrayList中存储元素的代码中,我们看到,每当向数组中添加元素时,都要去检查添加后元素的个数是否会超出当前数组的长度,如果超出,数组将会进行扩容...这种操作的代价是很高的,因此在实际使用时,我们应该尽量避免数组容量的扩张。当我们可预知要保存的元素的多少时,要在构造ArrayList实例时,就指定其容量,以避免数组扩容的发生。

    1.9K50

    Java中的集合(面试题)

    当我们new -个空参构造时系统调用了EmptyArray.OBJECT 属性, EmptyArray仅 仅是一个系统的类库,该类源码如下: public final class EmptyArray...new -个空参ArrayList 的时候,系统内部使用了-个new Object[0]数组。...HashTable是线程安全的一个集合,不允许null值作为一个key值或者Value值; HashTable是sychronize,多个线程访问时不需要自己为它的方法实现同步,而HashMap在被多个线程访问的时候需要自己为它的方法实现同步...ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。...在JDK的实现中,无论LikedList是否为空,链表内部都有一个header表项,它既表示链表的开始,也表示链表的结尾。

    48620

    ArrayList 扩容详解,扩容原理

    extends E> c) 用一个ICollection对象来构造,并将该集合的元素添加到ArrayList public ArrayList(int initialCapacity) 用指定的大小来初始化内部的数组...; } private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = { }; 可以看出它的默认数组为长度为0。...: **  向数组中添加第一个元素时,数组容量为10.** **  向数组中添加到第10个元素时,数组容量仍为10.** **  向数组中添加到第11个元素时,数组容量扩为15.** **...  向数组中添加到第16个元素时,数组容量扩为22.** 每次扩容都是通过Arrays.copyOf(elementData, newCapacity) 这样的方式实现的。...**  对比和总结:** 本文介绍了 ArrayList动态扩容的全过程。如果通过无参构造的话,初始数组容量为0,当真正对数组进行添加时,才真正分配容量。

    4.5K11

    第8章 泛型第8章 泛型

    这种实现方式,存在的问题有两个: 向集合中添加对象元素的时候,没有对元素的类型进行检查,也就是说,我们往集合中添加任意对象,编译器都不会报错。...当我们向rawArrayList 添加元素的时候 rawArrayList.add(0, "a"); 就限定其元素类型只能为String,那么在后面的获取元素的时候,自动强制转型为String 呢?...add元素错误信息 这通常会让我们感到困惑:为什么Number的对象可以由Integer实例化,而ArrayList的对象却不能由ArrayList实例化?...extends Number> list2 = new ArrayList(); 但是这里不能向list1、list2添加除null以外的任意对象。...Java为了保护其类型一致,禁止向List添加任意对象,不过可以添加空对象null。 ? 禁止向List<?

    1.9K20

    Java集合(一)--框架认识+Arraylist介绍+迭代器遍历

    对象,调用这个对象里面的方法,去往这个对象集合里面添加新的元素:我们可以看到,使用这个add方法添加新的元素的时候,这个数据类型是不一样的,这个也是和数组的一个区别,我们的数组里面的数据类型必须是一样的...,我们把这个book2指向这个j下标的内容b00k1指向这个j+1的内容; 5.ArrayList介绍 5.1底层源码规律 1.ArrayList里面的这个数据实际上是一个Object类型的数组elementData...,这个时候容量就是0,当我们添加数据的时候,这个容量就是10,加满之后按照1.5倍进行扩容; 3.使用有参数的构造器,就会开辟指定参数大小的空间,然后不够了按照1.5倍进行扩容; 5.2底层源码分析 我们定义一个列表...null也可以显示出来,我们的15扩容之后就是15+15/2=22,这个时候全部的数据就显示出来了,即使是空的,也是显示,方便我们看这个现象更加直观; 我们没进行这个设置的时候这个Object[22]@...里面的这个默认显示的是被阉割的,并不是完整的,而是已经有的不是空的数据; ull就不会显示出来,我们上面的这个设置效果就是为了把这个即使是空的数据也要显示出来,方便我们进行调试,因为这个IDEA里面的这个默认显示的是被阉割的

    9510

    Java集合解惑

    解析: 当在 ArrayList 中增加一个对象时 Java 会去检查 Arraylist 以确保已存在的数组中有足够的容量来存储这个新对象,如果没有足够容量就新建一个长度更长的数组(原来的1.5倍),...下面代码展示为 Java 1.8 中通过 ArrayList.add 方法添加元素时,内部会自动扩容,扩容流程如下: //确保容量够用,内部会尝试扩容,如果需要 ensureCapacityInternal...% Entry[].length; return Entry[index]; 当我们通过 put 向 HashMap 添加多个元素时会遇到两个 key 通过hash % Entry[].length计算得到相同...当我们通过 get 从 HashMap 获取元素时首先会定位到数组元素,接着再遍历该元素处的链表获取真实元素。...解析: ListIterator 有 add() 方法,可以向 List 中添加对象,而 Iterator 不能。

    67220

    【Java提高十六】集合List接口详解

    在每次添加新的元素时,ArrayList都会检查是否需要进行扩容操作,扩容操作带来数据向新数组的重新拷贝,所以如果我们知道具体业务数据量,在构造ArrayList时可以给ArrayList指定一个初始容量...为java关键字,为变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。Java的serialization提供了一种持久化对象实例的机制。...当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。...2.2、构造函数 ArrayList提供了三个构造函数: ArrayList():默认构造函数,提供初始容量为10的空列表。...上面为Entry对象的源代码,Entry为LinkedList的内部类,它定义了存储的元素。该元素的前一个元素、后一个元素,这是典型的双向链表定义方式。

    1.1K31

    Java集合面试题

    大家好,又见面了,我是你们的朋友全栈君。 Java集合面试题 Java 集合框架的基础接口有哪些? Collection ,为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。...主要结论如下: 如果通过无参构造的话,初始数组容量为 0 ,当真正对数组进行添加时,才真正分配容量。每次按照 1.5 倍(位运算)的比率通过 copeOf 的方式扩容。...HashSet 是用一个 hash 表来实现的,因此,它的元素是无序的。添加,删除和 HashSet 包括的方法的持续时间复杂度是 O(1) 。...基于你的 collection 的大小,也许向 HashMap 中添加元素会更快,再将 HashMap 换为 TreeMap 进行有序 key 的遍历。...当我们给 #put(key, value) 方法传递键和值时,我们先对键调用 #hashCode() 方法,返回的 hashCode 用于找到 bucket 位置来储存 Entry 对象。 ?

    54121

    ArrayList源码解析(3)

    当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为 10。下面在我们分析 ArrayList 扩容时会讲到这一点内容!...补充:JDK7 new无参构造的ArrayList对象时,直接创建了长度是10的Object[]数组elementData 。...add 进第 1 个元素到 ArrayList 时,elementData.length 为 0 (因为还是一个空的 list),因为执行了 ensureCapacityInternal() 方法 ,...7)ArrayList 实际上是通过一个数组去保存数据的。当我们使用无参构造函数构造ArrayList时,则ArrayList的默认容量大小是10。...Object[] EMPTY_ELEMENTDATA = {}; 用于创建默认大小ArrayList对象的空数组: private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA

    50720

    Java集合源码分析(一)ArrayList

    2)该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。     ...3)ArrayList的用法和Vector向类似,但是Vector是一个较老的集合,具有很多缺点,不建议使用。     ...ArrayList的数据结构是: ?   说明:底层的数据结构就是数组,数组元素类型为Object类型,即可以存放所有类型数据。我们对ArrayList类的实例的所有的操作底层都是基于数组的。...当我们调用add方法时,实际上的函数调用如下: ?     说明:程序调用add,实际上还会进行一系列调用,可能会调用到grow,grow可能会调用hugeCapacity。   ...型构造函数,那么elementData被初始化为大小为6的Object数组,在调用add(8)方法时,具体的步骤如下: ?

    1K60

    ArrayList实现原理分析(Java源码剖析)ArrayList使用的存储的数据结构ArrayList的初始化ArrayList是如何动态增长ArrayList如何实现元素的移除ArrayList

    non-private to simplify nested class access 我想大家一定对这里出现的transient关键字很疑惑,我们都知道ArrayList对象是可序列化的,但这里为什么要用...实际上就是一个共享的空的Object数组对象。...[] EMPTY_ELEMENTDATA = {}; 上述代码很容易理解,如果用户指定的初始化容量大于0,就new一个相应大小的数组,如果指定的大小为0,就复制为共享的那个空的Object数组对象。...然后根据这个array的大小进行判断,如果不为0,就调用Arrays的copyOf的方法,复制到Object数组中,完成初始化,如果为0,就直接初始化为空的Object数组。...ArrayList是如何动态增长 当我们像一个ArrayList中添加数组的时候,首先会先检查数组中是不是有足够的空间来存储这个新添加的元素。如果有的话,那就什么都不用做,直接添加。

    1.6K30

    java面试热点:集合框架(一)

    ArrayList很好地帮我们解决了这个问题,当我们需要一个能根据包含元素的多少来动态调整大小的数组时,那么ArrayList正是我们所需要的。...) 当我们插入了比较多的元素,导致ArrayList快要装满时,它会自动增长容量。...若要想避免这种开销,在知道大概会容纳多少数据时,我们可以在构造时指定好它的大小以尽量避免它自动增长的发生;我们也可以调用ensureCapacity方法来增加ArrayList对象的容量到我们指定的大小...中允许出现null元素,所以在遍历的时候,如果为对象,获取对象属性的时候要先判断遍历出来的对象是否为null,这样才可以避免空指针异常。...只有当我们需要减少在列表中间添加或删除元素操作的代价时,可以考虑使用LinkedList。

    54800

    《我们一起学集合》-ArrayList

    // 任何空的ArrayList 将被扩展到10当(第一次添加元素时) // 注意是通过transient修饰 transient Object[] elementData; //...* 构造一个初始容量为10的空列表。...ArrayList的无参构造,其实默认是空数组,我们上面说的初始化容量默认为10,是当我们用无参构造函数后,第一次向ArrayList添加元素时扩容的默认大小。...删除元素是通过System.arraycopy移动数组覆盖元素来实现的 ArrayList添加元素时没有校验null值,所以删除null值时是特殊处理的 ArrayList通过对象删除时判断相等是通过equals...判断,所以我们在储存自定义对象是要注意对equals进行重写 通过源码我们可以看出在使用ArrayList时我们要尽量避免大量的随机删除,因为删除元素会导致元素拷贝(尤其是大元素),这是非常消耗性能的一件事

    48110
    领券