【问题标题】:What is the Android Java equivalent of a Swift Dictionary?什么是 Swift 字典的 Android Java 等价物?
【发布时间】:2015-03-03 20:03:51
【问题描述】:

我可以像这样声明一个字典(键值对)

var toppings = [
        "Onions":"Red",
        "Peppers":"Green",
    ]

Java 中的等价物(声明键值对)是什么?

我尝试过修改数组,即改变...

public String[] couplets = {
        "Onions",
        "Peppers",
};

...到...

 public String[] toppings = {
        "Onions":"Red",
        "Peppers":"Green",
};

...但它不起作用。

我很欣赏它们是不同的语言,所以我很可能通过尝试直接点赞来过度简化这一点。

基本上我想在 Java 中创建一个静态键值对列表。

我已经在谷歌上搜索了一些建议,但与我可以在 swift 中做的相比,所有答案似乎都过于复杂,所以我想知道是否有一种简单的方法 - 也许没有......

非常感谢任何建议

谢谢

【问题讨论】:

标签: java android swift dictionary


【解决方案1】:

http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

Map 是将键映射到值的对象。映射不能包含重复的键:每个键最多可以映射到一个值。

Map<String,String> toppings = new HashMap<>();
toppings.put("Onions","Red");
toppings.put("Peppers","Green");

地图很棒,你最终会经常使用它们:)

【讨论】:

  • 谢谢 Ken,这正是我想要的,1 个问题 .put 似乎给了我一个错误——我需要导入一些东西才能使这种方法起作用吗?
  • 如果你已经定义了toppings,你不需要导入任何东西,.put 也不应该给你一个错误。无论如何,您的 IDE 应该告诉您错误是什么,这应该为您提供解决问题的线索。
【解决方案2】:

试试地图。

实例化新地图:

Map<String, String> map = new HashMap<String, String>();

输入值:

map.put("Onions","Red");

读取值:

map.get("Onions"); 将返回“红色”

【讨论】:

  • 您应该将其声明为 Map,而不是 HashMap。为接口编程,而不是实现。
【解决方案3】:

如果您需要使用 String 键,则应按照其他答案中的建议使用 HashMap

如果你可以使用整数键,我建议你使用SparseArray

SparseArray<String> values = new SparseArray<String>();
values.put(1,"value1");
values.put(2,"value2");

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多