【问题标题】:Doubly Linked List - Java [closed]双向链表 - Java [关闭]
【发布时间】:2013-10-21 18:29:43
【问题描述】:

是否可以在 Java 中创建一个包含两个元素的双向链表。一个元素必须是 String,而另一个元素必须是 Int。

这可能吗?如果可以,怎么做?

谢谢

【问题讨论】:

  • 是的。是的,有可能。是否需要每个元素都包含一个String和Integer,还是混合类型的列表(一个元素是String,另一个元素是Object)?
  • 每个元素都应该包含一个字符串,并且应该为该字符串分配一个整数值。
  • 所以它不是真正的 String 和 Integer 对象;它是一个字符串,其值可以被解释为整数,对吧?
  • 我想是的。但是字符串需要被分配一个特定的值。
  • 听起来你希望每个元素都是Map<String, Integer>

标签: java list linked-list doubly-linked-list


【解决方案1】:
LinkedList<Object> list = new LinkedList<Object>();
list.add(new String("Hello"));
list.add(new Integer(42));

编辑:根据 OP 的 cmets 更新:

首先创建一个将保留Stringint 的类:

public class ListNode {

   public String stringValue;

   public int integerValue;

   public ListNode(String s, int i) {
       this.stringValue = s;
       this.integerValue = i;
   }
}

然后将它们添加到LinkedList

LinkedList<Object> list = new LinkedList<Object>();
list.add(new ListNode("Hello", 42));
list.add(new ListNode("Testing", 5));

或者:

您可以使用Map 接口的实现(例如HashMap)以更简单的方式完成此操作,并将字符串与整数相关联,如下所示:

Map<String, Integer> myMap = new HashMap<String, Integer>();
myMap.put("Hello", 42);
myMap.put("Testing", 5);
System.out.println(myMap.get("Hello")); // will print 42
System.out.println(myMap.get("Hello") + myMap.get("Testing")); // will print 47

【讨论】:

  • 我的意思是例如将 42 分配给“Hello”元素?
  • 您的意思是给"Hello" 元素分配另一个String"42"
  • 如果我从列表中调用“Hello”,它应该得到值 42。如果有不同的字符串,例如“Testing”,将被分配一个不同的值,例如 5。
  • 我明白了。我已经相应地更新了我的答案。
  • 谢谢你,这就是我要找的东西
【解决方案2】:

LinkedList 是 java 中的双向链表实现,您可以将它用于包装所需字段的任何对象类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2015-08-05
    • 1970-01-01
    相关资源
    最近更新 更多