как преобразовать Python dict, возражают против Java эквивалентному объекту? [дубликат]

Мой список включает:

  .NET Rocks!
  RunAs Radio
  TWiT
  Stack Overflow (but then again, we wouldn't be in Beta if we didn't)
  Channel 9
  Hanselminutes

В значительной степени то же как все другие. Просто идет, чтобы показать Вам, почему подкасты важны для разработки Вашего искусства.

6
задан Elazar 23 August 2013 в 13:38
поделиться

3 ответа

Вероятно, проще всего просто создать класс для кортежа (Имя, Сила):

class NameStrength {
    public String name;
    public String strength;
}

Добавить геттеры, сеттеры и конструктор, если необходимо.

Затем вы можете использовать новый класс в своей карте:

Map<Integer, NameStrength> nodesMap = new HashMap<Integer, NameStrength>();

В Java 5 и выше вы можете выполнять итерацию следующим образом:

for (NameStrength nameStrength : nodesMap.values()) {}

или так:

for (Entry<Integer, NameStrength> entry : nodesMap.entrySet()) {}
4
ответ дан 16 December 2019 в 21:44
поделиться

В Java нет эквивалента встроенного кортежа. Вам нужно будет создать класс, который инкапсулирует их вместе, чтобы имитировать его.

1
ответ дан 16 December 2019 в 21:44
поделиться

ну всегда есть jython . вот немного из этой статьи , которая предлагает хороший параллельный обзор python / java

. Jython-аналоги Java классы коллекций намного больше плотно интегрирован в ядро язык, позволяющий более кратко описания и полезный функционал. Например, обратите внимание на разницу между кодом Java:

 map = new HashMap ();
map.put ("один", новое целое число (1));
map.put («два», новое целое число (2));
map.put («три», новое целое число (3));

System.out.println (map.get ("один"));

список = новый LinkedList ();
list.add (новое целое число (1));
list.add (новое целое число (2));
list.add (новое целое число (3));

и код Jython:

 map = {"one": 1, "two": 2, "three": 3}
распечатать карту ["один"]
список = [1, 2, 3]


edit: что плохого в том, чтобы просто использовать put () для замены значений?
map.put(key,new_value);

here's a small example program:

static public void main(String[] args){
    HashMap<String,Integer> map = new HashMap<String,Integer>();
     //name, age
    map.put("billy", 21);
    map.put("bobby", 19);
    year(map);
    for(String i: map.keySet()){
        System.out.println(i+ " " + map.get(i).toString());
    }
}
// a year has passed
static void year(HashMap<String,Integer> m){
    for(String k: m.keySet()){
        m.put(k, m.get(k)+1);
    }
}
3
ответ дан 16 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: