如何在java中用变量命名数组?

时间:2014-01-22 17:38:10

标签: java arrays

我正在尝试用Java创建一个日历,用于存储医生预约等事件。我计划将这些事件存储为String数组,包含事件的名称,事件的位置以及时间。事件。但是,为了生成新事件,数组需要具有唯一的名称,我希望这些名称是它们出现的日期。为此,我计划制作一个方法,将数组的新名称作为变量,然后使用该变量作为数组的名称(如下所示):

public static void addInformation(String eventLabel) {
    String eventName = JOptionPane.showInputDialog(null,"What yould you like the event to be called?");
    String eventLocation = JOptionPane.showInputDialog(null, "Where will this event take place?");
    String eventTime = JOptionPane.showInputDialog(null, "What time will this event take place? Input as: \"hours:minutes\" using a 24 hour clock.");
    String[] eventLabel = {eventName, eventLocation, eventTime};
    events.add(newEvent);
}

当我尝试这个时,我收到一条错误说:eventLabel已在addInformation中定义(java.lang.String)

有没有办法使用参数为变量命名数组?任何帮助,将不胜感激。提前谢谢。

编辑:

似乎你不能拥有变量变量名。有没有办法在每次调用此方法时创建一个唯一的数组?

6 个答案:

答案 0 :(得分:1)

您的方法声明的eventLabel类型为String。您尝试将其重新定义为String[]。试试String[] eventLabelArray

热门舔是正确的 - 您无法执行addInformation('Arr')之类的操作并将eventLabel命名为'Arr'并致电Arr[0]。为什么你需要它变量?

答案 1 :(得分:1)

您要做的就是使用变量名来创建变量名,我不确定是否可以这样做。

但地图可用于解决您的问题。匹配将提供您想要的完全相同的功能

例如:

Map<String, Something> myMap = new HashMap<String, Something>();

String name = eventName + eventLocation + eventTime; 

 myMap.put(name, new something);

答案 2 :(得分:1)

使用HashMap。对于每个条目,使用eventLabel参数设置密钥,并将值设置为数组。这样,您将为每个“数组”命名(在这种情况下,这将是HashMap中的条目)。

答案 3 :(得分:0)

eventLabel既用作方法中的局部变量,也用作传入参数。给出两个不同的名称,这应该可以解决您的问题。

答案 4 :(得分:0)

您不能使用与传递给函数的变量(String eventLavel)相同的名称

public static void addInformation(String eventLabel){
  String eventName = JOptionPane.showInputDialog(null,"What yould you like the event to be called?");
  String eventLocation = JOptionPane.showInputDialog(null, "Where will this event take place?");
  String eventTime = JOptionPane.showInputDialog(null, "What time will this event take place? Input as: \"hours:minutes\" using a 24 hour clock.");
  String[] arr = {eventName, eventLocation, eventTime}; // some other name!
  events.add(arr);
}

答案 5 :(得分:0)

以这种方式思考问题很好,但我认为你正试图解决一个无问题。

  

每次使用此方法时,是否有办法创建唯一的数组   叫?

是的,它是免费的 - 您无需做任何事情。因为正在方法内创建数组,所以每次都会创建一个新数组。正如其他人所说,只需使用不同的变量名称(不是eventLabel),你就可以了。