Присвоение каждому другому значению в массиве соответствующему значению во втором массиве

У меня есть два массива целых чисел: мод и оценка. Элементы в счете должны быть назначены элементам в моде, но попарно, начиная с двух.

Например, как 10, так и 11 в массиве score будут равны 0 в массиве mod, а 1 в score будет равняться -5 в mod.

Если кто-то играет в Dungeons and Dragons, это та же система, что и в оценках способностей и их модификаторах.

Вот мои два массива.

    int[] mod = {-5,-4,-3,-2,-1,0,1,2,3,4,5};
    int[] score = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};

person Payton Mock    schedule 16.07.2015    source источник
comment
Это всегда 2:1 или когда-нибудь будет 3:1 или 4:1?   -  person m4mbax    schedule 16.07.2015
comment
Почему бы вам не использовать Map<Integer, Integer>   -  person Nir Alfasi    schedule 16.07.2015
comment
@Payton Mock Пожалуйста, напишите, что вы уже пробовали.   -  person Ankur Singhal    schedule 16.07.2015
comment
Что будет отображаться на -4 в моде? Я в замешательстве, потому что, если я посмотрю на score попарно, 9 и 10 будут отображаться в -1, но вы говорите, что 10 будет отображаться в 0.   -  person ajb    schedule 16.07.2015


Ответы (2)


HashMap<Integer,Integer сделает то, что вам нужно.

Например :

Map<Integer,Integer> scoreToMod = new HashMap<>();
...
scoreToMod.put(10,0);
scoreToMod.put(11,0);
...
int mod = scoreToMod.get(11); // will return 0
person Eran    schedule 16.07.2015
comment
WOW даже не думал об использовании HashMap. Спасибо. - person Payton Mock; 16.07.2015

Вы можете использовать деление целых чисел ScorePosition/2 — это позиция отображения для мода.

Таким образом, первые два элемента счета соответствуют первому из середины 0/2=0 и 1/2=0. А для следующих двух: 2/2=1 и 3/2=1. И так

person Sergio Velasquez    schedule 16.07.2015