【问题标题】:Java Dictionary like from Python [duplicate]来自 Python 的 Java 字典 [重复]
【发布时间】:2014-02-08 05:43:07
【问题描述】:

所以我整天都在搜索和搜索,但我似乎找不到如何创建我在 Python 中创建的字典并在 Java 中创建类似的东西。我曾尝试查看 ArrayList 和 List 等,但无济于事。

PIECESDICT = {1: [[0,0], [0,1], [0,2], [1,1]], 2: [[0,0], [1,0], [0,1]], 3: [[0,0], [0,1], [1,1]], 4: [[0,0], [0,1], [1,0], [1,1]], 5: [[0,0], [1,0], [2,0]]} 

所以这是我的字典,基本上它所做的只是从坐标 (0,0) 中说的,即每个片段的左上角。它本身就是一块。

例如,第 1 部分看起来像:

0
00
0

类似地,第 2 部分看起来像:

00
0

【问题讨论】:

  • 你可以试试 HashMap。
  • 你能解释一下如何像字典一样使用它吗?
  • 如果你已经搜索了一整天,你应该处理你的搜索词。 Java dictionary 的第一个谷歌点击是(公认已过时的)Dictionary class,阅读类描述会指向 Map。搜索Java map 会产生this tutorial 作为第二次点击,这是对该主题的广泛介绍。但实际上,如果你所有的键都是从 1 向上的数字,就像你的例子一样,你可以只使用一个列表......

标签: java python dictionary arraylist


【解决方案1】:

你可以试试HashMap

你可以使用它的方式:

Map<Integer, Integer[][]> map = new HashMap<Integer, Integer[][]>();
Integer[][] v1 = { { 0, 0 }, { 0, 1 }, { 0, 2 }, { 1, 1 } };
map.put(1, v1);

【讨论】:

  • 或者只是Map&lt;Integer, int[][]&gt;...
【解决方案2】:

看起来你想要... ArrayLists 中的 HashMap 某种对或坐标对象。

如果您有一个接受坐标作为参数的Pair 类(例如new Pair(0, 0)),那么您可以执行以下操作:

HashMap<Integer, ArrayList<Pair>> map = new HashMap<Integer, ArrayList<Pair>>();

ArrayList<Pair> first = new ArrayList<Pair>();
first.add(new Pair(1, 2));
first.add(new Pair(3, 4));

map.put(1, first);

// map == {1: [[1,2], [3,4]]}

HashMap 也可以接受 String(而不是 Integer)作为其中列表的键。

【讨论】:

  • 谢谢你,这很有意义!我不知道为什么我不早点研究这样的事情。我最初是在寻找 ArrayList 的 ArrayList 的 ArrayList ,所以感谢所有提供帮助的人。
【解决方案3】:

HashMap 呢? 例如: map.put("名称", "值");

【讨论】:

  • 是的,Hashmap 可以工作,我确实喜欢这个想法,但是我如何包含 [[0,0],[0,1],[0,2],[1,1]]
  • 您可以选择值中的对象是什么。您可以决定它将是点数组(您应该定义)
【解决方案4】:

如果您需要将数据从 Python 移动到 Java,请查看 JSON。

在 Python 中,您可以使用 http://docs.python.org/3/library/json.html

对于 Java:http://json.org/java/

【讨论】:

  • JSON 在这方面有何帮助? OP 想用 Java 实现一个数据结构,并给出了一个 Python 结构作为所需的示例。它在哪里谈论移动数据?
猜你喜欢
  • 2017-03-10
  • 2020-06-14
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2014-09-20
相关资源
最近更新 更多