2015-03-24 3 views
1

Мне нужен редуктор для итерации по массиву и назначения каждого элемента (всего 2 элемента). Но мой код принимает все значения и просто назначает его ключу?Итерация через массив и назначение каждого значения

Например здесь:

 public void reduce(Text key, Iterator<Text[]> values, 
    OutputCollector<Text, Text[]> output, Reporter reporter) 
    throws IOException { 

Является ли этот метод просто демпинг всего моего массива в ведро значений?

Есть ли способ использовать цикл While для каждого элемента текста [] и назначить его int?

Вот мое начало, что:

 while (values.hasNext()){ 
       String AtBats = values.toString(); 
       int AB = Integer.parseInt(AtBats); 

Это бы все значения и сделать его AtBat, но я хочу, чтобы второй элемент, чтобы быть хитом. Смутно, как это сделать.

+0

Что вы подразумеваете, чтобы превратить его в AtBat? Вы хотите сказать, что это займет все значение и сделает его строкой, но вы хотите, чтобы второй элемент был int? – AvetisG

+0

Извините, я хочу взять каждое значение и сделать его в int. В этом фрагменте я просто показываю, как я делаю это с первым элементом в массиве из двух элементов. –

ответ

7

Насколько я понимаю из вашего ответа, вы хотите взять свои значения и затем проанализировать их в строке.

У вас есть все вниз, но я хотел бы предложить вам встраивать AtBats и просто его как

int AB = Integer.parseInt(values.toString()); 

UPDATE: После разговора с помощью этого мы спустились к выводу, что передача массива и перекручивания через него излишний.

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

+0

То, что меня смущает эта строка в методе: Итератор значения, Значения моего массива? ИЛИ - значения всех моих значений, связанных с ключом? Зная, что это поможет мне разобраться, что положить в мой цикл while. –

+0

Хорошо, не нужно отвечать, делая это сложнее, чем я должен. Переустановка моего картографа, поэтому мне больше не нужно передавать массив. –

+0

@JPHochbaum, поэтому он переходит к типу, а затем к переменной. В этом случае ваш тип - Iterator , поэтому ваши значения означают итератор. И я согласен с вашим вторым заявлением. Когда ваш код становится сложным, самое время его расспросить. Позвольте мне знать, что вы в конечном итоге. – AvetisG

Смежные вопросы