gpt4 book ai didi

java - 初始化类对象

转载 作者:行者123 更新时间:2023-11-29 05:36:05 25 4
gpt4 key购买 nike

我是 Java 新手。如果我问一个简单的事情,我深表歉意。我写了下面的代码,但它似乎没有正确初始化。因为当我打印 list1 的大小时,它显示 size = 0!!但是,应该是4!

public static class MyClass{
public List <Integer> list1

// Class Constructor
public MyClass(int n){
list1 = new ArrayList <Integer> (n);
System.out.println("Size = " + list1.size() );
// prints Size = 0 !!!why???
}

public void init(int n){
for(int cnt1 = 0; cnt1 < list1.size(); cnt1++){
list1.set(cnt1 , cnt1);
}
}
...}



public static List<Integer> Func1(int n){
MyClass = new myclass (n);
myclass.init(n);
... }


public static void main(String args[]){
int n = 4;
result = Func1 (n);
...}

为什么list1的大小是0?它应该是 4,因为我将 4 传递给 Func1,然后它创建了大小为 n 的 MyClass 对象。如果有人能帮助我解决这个问题,我将不胜感激。

最佳答案

Java 中的数组列表具有大小容量

  • 大小告诉您列表中有多少项,而
  • 容量告诉您列表在需要调整大小之前可以容纳多少项目。

当您调用ArrayList(int) 构造函数时,您设置的是新创建的数组列表的容量,而不是大小。这就是为什么您在确定尺码时看到打印出零的原因。

容量为 4 意味着您可以在不触发调整大小的情况下将四个整数添加到列表中,但在您开始向列表中添加一些数据之前,列表中的元素为零。

关于java - 初始化类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com