gpt4 book ai didi

Java:将一对元素插入链表

转载 作者:行者123 更新时间:2023-12-01 12:56:06 31 4
gpt4 key购买 nike

我是Java新手,我正在尝试将一组元素添加到链接列表中,我的界面包含添加单个、对、三元组。这是我到目前为止所掌握的方法。

list是构造函数中声明的链表

public void addSingle(E item) {
list.add(item);
}

public void addPair(E first, E second) {
E one = first;
E two = second;

LinkedList<E> pairList;

pairList = new LinkedList<E>();

pairList.add(one);
pairList.add(two);

list.addAll(pairList);
}

public static void main(String[] args) {

Lists<String> linkdList = new ConcreteList<String>();
linkdList.addSingle("allan");

linkdList.addPair("abc","def");

}

这会将所有内容添加到 linkdList 中,但需要它能够区分单个和对。

最佳答案

一种方法是使用一个简单的基类型和两个派生类型:它可能看起来像这样(可能有一些语法错误和拼写错误......)

class <E> ListEntry<E> {
}

class <E> SingleValueListEntry extends ListEntry<E> {
E value;
SingleValueListEntry(E value) {
this.value = value;
}
}

class <E> DoubleValueListEntry extends ListEntry<E> {
E first;
E second
SingleValueListEntry(E first, E second) {
this.first = first;
this.second = second;
}
}

public static void <E> addSingle(List<ListEntry<E>> list, E item) {
list.add( new SingleListEntry(item));
}

public static void <E> addPair(List<ListEntry<E>> list, E first, E second) {
list.add( new DoubleListEntry(first,second) );
}

public static void main(String[] args) {

Lists<ListEntry<E>> list = new ConcreteList<ListEntry<E>>();
addSingle(list, "allan");

addPair(list, "abc","def");

for( ListEntry<String> e : list ) {
if( e instanceof SingleValueListEntry<String> ) {
SingleValueListEntry<String> v = (SingleValueListEntry<String>)e;
System.println("Single value : "+v.value);
}
if( e instanceof DoubleValueListEntry<String> ) {
DoubleValueListEntry<String> v = (DoubleValueListEntry<String>)e;
System.println("Single value : "+v.first+", "+v.second);
}
}
}

关于Java:将一对元素插入链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879227/

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