gpt4 book ai didi

java - 链接列表中的参数化类型

转载 作者:行者123 更新时间:2023-12-02 05:22:42 25 4
gpt4 key购买 nike

我有一个数据结构,我需要将数据与同时发生的先前元素进行比较。像这样的东西:

dataStruct{
long startTime;
long endTime;
long data;
}

我的实现的一部分涉及将这些元素添加到链接列表中并比较重叠时间存在的节点之间的数据。我是否需要参数化类型,或者我可以将 dataStructures 添加到列表中并通过点运算符访问其成员吗?像这样的东西:

    dataStructure data = new DataStructure(time, time2, data);
dataStructure moreData = new DataStructure(time3, time4, data2);

LinkedList list = new LinkedList();

list.add(data);

if(list.peek().endTime > moreData.startTime){
moreData.data = list.peek().data + moreData.data;
list.pop();
}

最佳答案

您应该使用参数化类型。

LinkedList<DataStructure> data = new LinkedList<DataStructure>();

这样,您就可以从 LinkedList 中获取 DataStructure 而不是 Object

否则,您将使用处理ObjectLinkedList类的原始形式。可以将从列表中获得的内容转换为 DataStructure,这样就可以了。但首选使用带有参数化类型的泛型;原始类型和转换是 Java 5 之前的旧的集合操作方式。

您是否可以直接访问成员取决于创建和使用这些 DataStructure 的代码是否位于同一个包中,因为您对 的成员具有(默认)包可见性数据结构.

通常,您需要封装 DataStructure 类型,并使用 private 成员变量和 public 访问的“getter”和“setter”方法这些值(value)观。然后任何代码都可以使用 DataStructure 来访问这些值。

关于java - 链接列表中的参数化类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371907/

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