2014-01-02 7 views
-1

Может ли кто-нибудь помочь мне в ситуации ниже?Извлечение целочисленных значений из LinkedList

List ll = new LinkedList(); 
ll.add(10); 
ll.add(20); 
ll.add("king"); 
ll.add(30); 
ll.add(40); 

Я хочу получить сумму всех вышеперечисленных целых чисел в списке.

+0

король не является целым числом, используйте дженерики. –

+0

Тот факт, что вы задаете этот вопрос, вероятно, вызван тем, что ваш дизайн плох. –

+0

Пожалуйста, покажите нам, что вы уже пробовали. –

ответ

3

Просто итерацию по списку и для каждого элемента проверки, если это целое число или нет:

int sum = 0; 
for (Object o : ll) { 
    if (o instanceof Integer) { 
     sum += ((Integer)o).intValue(); 
    } 
} 
+0

Я имею в виду, конечно .. это работает из-за поддержки старого, но это невероятно * плохо * для этого. Настолько, что это действительно ужасный ответ. –

+0

Да, его работа..от вас, но мы должны использовать «instanceof» определенно? – user2173142

+0

@ user2173142 Нет. Ваш примерный код довольно откровенно, notihng, который должен когда-либо произойти; вы смешиваете случайные типы в необработанном списке. Этот ответ - это то, что никто, кто на самом деле не пишет код для жизни, не будет предлагать (при условии, что они сами знали, что они делают). –

1

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

Generics in Java - ваши друзья.

Во-первых, используйте, по возможности, Generics.

Если вы знаете, что List только собирается содержать Integer с, а затем объявить его как

List<Integer> list = new LinkedList<Integer>(); 

Что касается Сумма:

Просто взять переменную сумму, перебрать его, используя для каждого цикла и добавьте все элементы путем литья его до Integer, если тип instanceofInteger. Имейте в виду, что вам не понадобится этот экземпляр проверки, если вы объявите его, как я предложил. Предполагая, что в списке будут только целые числа. В противном случае объявите его как List<Object> list = new LinkedList<Object>();

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