Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачка на выборку элементов из списка 
:(
    Опции темы
Hehabr
Дата 19.11.2013, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 19.11.2013

Репутация: нет
Всего: нет



Задача: Создать список, заполнить его числами от 0 до 10. Затем создать ещё 3 списка и рассортировать первым список по трем новым - в первый из новых трех войдут числа, которые делятся на 5, во второй - которые делятся на 2 и в третий все остальные.

Вопрос 1 : какие есть ошибки в моем коде?
Вопрос 2: как вообще лучше всего провести такую рассортировку?

Код

import java.util.ArrayList;
public class Lists
{
public static void main(String[] args) throws Exception
{
ArrayList<Integer> listnew = new ArrayList<Integer>();
for (int i = 0; i<11; i++)
{
listnew.add(i);
}

ArrayList<Integer> list5 = new ArrayList<Integer>(); // %3
ArrayList<Integer> list2 = new ArrayList<Integer>(); // %2
ArrayList<Integer> list0 = new ArrayList<Integer>();

for (int i = 0; i < listnew.size(); i++)
{
Integer x = listnew.get(i);
if (x%5==0) { list5.add(x); }
if (x%2==0) { list2.add(x); }
if (x%5!=0 && x%2!=0) { list0.add(x); }
}

for (int i=0; i<list5.size(); i++)
{
System.out.println(list5.get(i));
}
}
} 


Это сообщение отредактировал(а) Hehabr - 19.11.2013, 20:32
PM MAIL   Вверх
jManiak
Дата 19.11.2013, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 6.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 1



1. Счетчик вам тут ни к чему. Используйте for
Код

for(Integer i: listnew) {
    if(...){...}
}

2. При текущем алгоритме, число 10 попадет сразу в два списка. Я не знаю правильно это или нет по заданию, но если нет, то ошибка. И в таком случае используйте конструкцию:
Код

if(){
   ...
} else if () {
   ...
} else {
   ...
}

PM MAIL ICQ   Вверх
Samotnik
Дата 19.11.2013, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Hehabr, задание простое, решение тоже. Особо критиковать нечего. Чутка поправил:
Код

public class Lists {
    public static void main(String[] args) {
        List<Integer> listnew = new ArrayList<Integer>();
        for (int i = 0; i <= 10; i++) {
            listnew.add(i);
        }
        List<Integer> list5 = new ArrayList<Integer>(); // %5
        List<Integer> list2 = new ArrayList<Integer>(); // %2
        List<Integer> list0 = new ArrayList<Integer>();
        for (Integer x : listnew) {
            if (x % 5 == 0) {
                list5.add(x);
            } else if (x % 2 == 0) {
                list2.add(x);
            } else {
                list0.add(x);
            }
        }
        System.out.println("First List (divide 5): ");
        print(list5);

        System.out.println("First List (divide 2): ");
        print(list2);

        System.out.println("First List (others): ");
        print(list0);
    }

    private static void print(List<Integer> list) {
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.