gpt4 book ai didi

java - Stack stack = otherStack 创建指向 otherStack 的指针?

转载 作者:行者123 更新时间:2023-12-02 13:19:54 44 4
gpt4 key购买 nike

我目前正在进行一项对象结构练习,其中实现了一个简单的 Twitter 界面。我有一个 TwitterAccount 对象和一个 Tweet 对象。 TwitterAccount 对象有一个包含所有推文的 Stack。在我的 getTweet(index) 方法中,我希望使用 getTweet(1) 返回最新的推文,并使用 getTweet(2) 返回第二新的推文...等等。

我通过创建一个临时推文堆栈,从临时堆栈中弹出索引为 1 的推文,然后返回下一条推文来实现此目的。我的问题是原始推文堆栈的元素也被弹出。当我创建临时堆栈时,我是否创建了一个指向推文堆栈的指针?

Stack<Tweets> tweets;

(...)

public Tweet getTweet(int index) {

Stack<Tweet> tempTweets = tweets;
for (int i = 0; i < index-1; i++)
tempTweets.pop();

return tempTweets.pop();

}

最佳答案

是的,在这种情况下,您只是在查看同一个对象。这里没有发生复制。

创建堆栈副本的最简单方法是克隆它。

Stack<Tweet> tempTweets = (Stack<Tweet>) tweets.clone();

PS Consider using Deque instead因为Stack是垃圾

关于java - Stack<Obj> stack = otherStack 创建指向 otherStack 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43613692/

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