Присвояване на всяка друга стойност в масива на съответстваща стойност във втори масив

Имам два масива от int: mod и score. Елементите в резултата трябва да бъдат присвоени на елементите в мода, но по двойки, започвайки от два.

Например, както 10, така и 11 в масива с резултати ще се равнява на 0 в масива на mod, а 1 в резултата ще е равно на -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)


A 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

Можете да използвате деление на ints ScorePosition/2 е позицията на картографиране за мода.

Така първите два елемента на резултата се съпоставят с първия от средата 0/2=0 и 1/2=0 И за следващите два: 2/2=1 и 3/2 =1 И така

person Sergio Velasquez    schedule 16.07.2015