Java - ArrayList 和创建一个对象

标签 java arraylist

标题问题有点棘手,所以这是我的问题:

1- 我创建了一个 arraylist 的对象 y 并将其指定为一个引用变量,到目前为止一切顺利。

ArrayList<String> y = new ArrayList<String>();

2- 这里我向数组添加了一个元素:

y.add("Hello"); y.add("GoodBye");

现在这是我不明白的部分,现在当我创建一个返回字符串的方法时:

public String stringful(ArrayList<String> list)

现在,当我尝试获取数组的 size() 时,我使用 list.size() 但为什么呢? y 不是原始对象吗,我应该使用 y.size() 尽管它不起作用,所以这就是我来这里的原因。谢谢

最佳答案

使用这个方法头:

public String stringful(ArrayList<String> list)

您声明此方法将使用类型为 ArrayList<String> 的对象称为 list .因为你声明y在本地,另一种方法甚至不知道存在。引用y来自该方法的代码将无法编译,当然假设它是一个局部变量。

Java 中的指针

当您创建一个新对象时,您使用指向该对象的指针。例如,当您声明:

ArrayList<String> y;

您正在创建一个指针。添加代码时:

ArrayList<String> y = new ArrayList<String>();

这会将指针指向一个新的 ArrayList<String>对象进入 y多变的。所以当你通过 y作为方法的参数,您将传递一个指向对象的指针 y也指向,不是对象本身。这就是为什么您的代码适用于 list.size() .它所做的就是获取 size完全相同对象的值,只是指针不同。

总结

总而言之,它实际上同一个对象。只是不同的指针,看着那个对象。

关于Java - ArrayList 和创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403992/

相关文章:

Java 8 : merging two Lists containing objects by Id

java - 从 ArrayList 中删除 - 从列表中删除一个整数

Java arrayList 与 Vector 不兼容

java - 如何让 Java 托盘图标消息淡出?

java - 在 Java 8 中动态创建和编译函数

java - Selenium 需要大量时间来获取给定 URL 的动态页面

java - mysql:服务器重启后保持自动递增计数器 - 不一致的envers审计表

java - 如何使用经纬度信息从集合中计算地理空间距离?

java - 扩展ArrayList-无法实例化字符串类型?

android - 一一检查ArrayList of Strings是否包含50个不同的String