【问题标题】:Using string to refer to arraylist使用字符串引用arraylist
【发布时间】:2014-11-30 22:08:50
【问题描述】:

我有一个名为 State 的类,它的构造函数接受一个字符串并用另一个字符串对其进行初始化。我想让它使构造函数中的字符串引用该对象。问题是我传递给构造函数的不是字符串而是数组列表。我想给 arraylist 一个名称并将其分配给主类中的一个变量。因此,当我调用 arraylist 的名称时,它指向 arraylist 或其内容。我不希望该字符串名称成为 arraylist 的一部分,也不希望 arraylist 的内容发生变化。有没有这样做。我知道c++有指针,也许有类似的。

class State{
   String strName;
   public State(String name){
        strName = name;
   }
}
class main{
   private TreeMap treeMap = new TreeMap();
   private String newState;
   State startState = new State();
   ArrayList setState = new ArrayList(startState);
   startState = new State(ArrayList.ToString(setState));

    newState = startState.strName;// so now newState will refer to the arraylist.
   //and i could show this by doing System.out.println(newState);

   treeMap.put(newState.strName, startState);
}

put() 函数会将第一个参数与第二个参数相关联。所以我想使用State对象中声明的字符串,并与这个treeMap中的相同状态相关联。

【问题讨论】:

  • 我无法理解您的问题,您能澄清一下吗?你想要一个值为“name”的字符串指向一个数组列表吗?
  • 抱歉,我更新了我的问题。希望它更清楚一点。
  • 为什么首先需要字符串?为什么不直接将 ArrayList 传递给 State-Object 的实例?
  • 抱歉让这件事变得困难。我真的应该在提问之前考虑一下这个问题并提出所有需要的代码。

标签: java string arraylist


【解决方案1】:

好的,我想我有你的问题!您的树形图存储所有引用名称 -> 状态。所以在我看来,你的状态也应该包含对数组列表的引用:

class State{
   String name;
   List list;
   public State(String name, List list){
        this.list = list;
        this.name = name;
   }
}

class main{
   private TreeMap treeMap = new TreeMap();
   private String newState = "whatever identifier you like";
   ArrayList setState = new ArrayList();
   State startState = new State(newState, setState);

   treeMap.put(startState.name, startState); // now the State-Instance startState can be referenced via 
                                             // the String newState. The reference to the corresponding 
                                             // ArrayList is within the state object

}

【讨论】:

    猜你喜欢
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2015-12-07
    • 2014-04-15
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    相关资源
    最近更新 更多