• ,

level07.lesson09.task01 объясните ошибку foreach

Три массива
1)Введи с клавиатуры 20 чисел, сохрани их в список и рассортируй по трём другим спискам:
Число делится на 3 (x%3==0), делится на 2 (x%2==0) и все остальные.
Числа, которые делятся на 3 и на 2 одновременно, например 6, попадают в оба списка.
2)Метод printList должен выводить на экран все элементы списка с новой строки.
3)Используя метод printList выведи эти три списка на экран. Сначала тот, который для x%3, потом тот, который для x%2, потом последний.

Написал вот такой код:
public class Solution
{
    public static void main(String[] args) throws Exception
    {
    BufferedReader r= new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> list= new ArrayList<Integer>();
    ArrayList<Integer> list3= new ArrayList<Integer>();
    ArrayList<Integer> list2= new ArrayList<Integer>();
    ArrayList<Integer> list0= new ArrayList<Integer>();
        for(int i=0; i<20; i++) list.add(Integer.parseInt(r.readLine()));
        for(int i=0; i<20; i++)
        {
        //удалено в целях соблюдения кодекса
        }
        printList(list3);
        printList(list2);
        printList(list0);
     }
    public static void printList(List<Integer> list)
    {
        for(int i=0;i<list.size();i++) System.out.println(list.get(i));
    }
}


он работает правильно, а так же прошёл проверку.Но мой вопрос в другом: при попытке записать метод printList
public static void printList(List<Integer> list)
    {
        for(int i=0;i<list.size();i++) System.out.println(list.get(i));
    }

более коротким образом
public static void printList(List<Integer> list)
    {
        for(Integer i:list) System.out.println(list.get(i));
    }

программа компилируется, но полностью теряет работоспособность и после ввода значений вылетает с ошибкой.
Объясните, пожалуйста, почему это происходит? Никак не могу разобраться что я не учёл.

level07.lesson09.task05

Добрый вечер.

Задача ни хрена не работает, вывод правильный.


public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        //Считать строки с консоли и объявить ArrayList list тут
        ArrayList<String> list = new ArrayList<String>();

        int i = 0;
        while(i < 10){
            list.add(reader.readLine());
            i++;
        }

        ArrayList<String> result = doubleValues(list);

        //Вывести на экран result
        for(String str : result){
            System.out.println(str);
        }
    }

    public static ArrayList<String> doubleValues(ArrayList<String> list)
    {
        //напишите тут ваш код
        ArrayList<String> result = new ArrayList<String>();

        for(String str : list){
            Collections.addAll(result, str, str);
        }

        return result;
    }
}


Вывод:


a
b
c
d
e
f
g
h
i
j
a
a
b
b
c
c
d
d
e
e
f
f
g
g
h
h
i
i
j
j
  • ,

test.level07.lesson04.task01

package com.javarush.test.level07.lesson04.task01.task1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Sours {
public static void main(String[] args) throws Exception
{
int[] array = initializeArray();
int max = max(array);
System.out.println(max);
}
public static int[] initializeArray() throws IOException {
int[] mass =new int[20];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < mass.length; i ++)
{mass[i]= Integer.parseInt(reader.readLine());}
return mass;
}

public static int max(int[] array) {
int max = array[0];
for(int i = 0; i < array.length; i++)
{
for(int j = 0; j < array.length; j++)
{
if(max<array[j])
{
max = array[j];
}
}
}
return max;
}

}

отдебажил код в eclipse. Все отлично наибольшие число находить. Но задача сервером не тестируется( что я не так сделал?
  • ,

level07.lesson06.task05

Добрый день. Подскажите пожалуйста, почему не проходит проверку?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution
{
public static void main(String[] args) throws Exception
{
//Напишите тут ваш код

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayListlist = new ArrayList();

for (int i = 0; i < 5; i++) {
list.add(0, reader.readLine());
}

for (int i = 0; i < 13; i++) {
list.add(0, list.get(list.size() — 1));
list.remove(list.size() — 1);
}

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

com.javarush.test.level07.lesson12.bonus02

Здравствуйте! Помогите найти ошибку, пожалуйста. Код выполняется и выглядит вывод исправно, однако на сервере не проходит тестирование.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

/* Нужно добавить в программу новую функциональность
Задача:  Программа вводит строки, пока пользователь не введёт пустую строку (нажав enter). Потом она конвертирует строки в верхний регистр (Мама превращается в МАМА) и выводит их на экран.
Новая задача: Программа вводит строки, пока пользователь не введёт пустую строку (нажав enter). Потом программа строит новый список.
Если в строке чётное число букв, строка удваивается, если нечётное – утраивается.
Пример ввода:
Кот
Коты
Я
Пример вывода:
Кот Кот Кот
Коты Коты
Я Я Я
*/

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList<String> list = new ArrayList<String>();
        while (true)
        {
            String s = reader.readLine();
            if (s.isEmpty()) break;
            list.add(s);
        }

        ArrayList<String> SecondList = new ArrayList<String>();
        for (int i = 0; i < list.size(); i++)
        {
            String s = list.get(i);
            if((s.length()-1)%2==0)
            {
                SecondList.add(s+" "+s);
            } else if ((s.length()-1)%2!=0)
                SecondList.add(s+" "+s+" "+s);

        }

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

level07.lesson06.task01

программа работает отлично, но не проходит проверку, что отписал плагин:
«программа работала слишком долго и была закрыта».
Этот же код у меня в idea работает мгновенно.

/* 5 различных строчек в списке
1. Создай список строк.
2. Добавь в него 5 различных строчек.
3. Выведи его размер на экран.
4. Используя цикл выведи его содержимое на экран, каждое значение с новой строки.
*/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;


public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list = new ArrayList<String>();
        for(int i=0; i<5; i++){
            String s = r.readLine();
            list.add(s);
        }

        for (int i=0; i<list.size(); i++){

            System.out.println(list.get(i));
        }
        //Напишите тут ваш код
    }
}


P.S. задача решена, всем отписавшимся спасибо, грустно, что допустил ошибки в довольно таки очевидных местах…
  • ,

com.javarush.test.level07.lesson12.bonus02

В этой задаче заголовок: «Нужно добавить в программу новую функциональность»…
Сбивает с толку. Думаешь что нужно сохранить прежний функционал и добавить новый. Оказывается старый функционал нужно заменить на новый.
  • ,

com.javarush.test.level07.lesson12.bonus02

В этой задаче заголовок: «Нужно добавить в программу новую функциональность»…
Сбивает с толку. Думаешь что нужно сохранить прежний функционал и добавить новый. Оказывается старый функционал нужно заменить на новый.
  • ,

package com.javarush.test.level07.lesson09.task05;

Помогите мне, код не проходит проверку
package com.javarush.test.level07.lesson09.task05;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

/* Удвой слова
1. Введи с клавиатуры 10 слов в список строк.
2. Метод doubleValues должен удваивать слова по принципу a,b,c -> a,a,b,b,c,c.
3. Используя цикл for выведи результат на экран, каждое значение с новой строки.

Мой пример
Ввод:
    Один
    Два
    Три
    Четыре
    Пять
    Шесть
    Семь
    Восемь
    Девять
    Десять
Вывод:
    Один
    Один
    Два
    Два
    Три
    Три
    Четыре
    Четыре
    Пять
    Пять
    Шесть
    Шесть
    Семь
    Семь
    Восемь
    Восемь
    Девять
    Девять
    Десять
    Десять

*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //read strings and init ArrayList list here - считать строки с консоли и объявить ArrayList list тут

        ArrayList<String> list = new ArrayList<String>();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        for (int i = 0; i < 10; i++)
        {
            list.add(bufferedReader.readLine());
        }

        ArrayList<String> result = doubleValues(list);

        for (String s:result)
        {
            System.out.println(s);
        }
    }

    public static ArrayList<String> doubleValues(ArrayList<String> list)
    {
        int k = 0;
        int x = 0;
        int size = list.size();
        while(k != size)
        {
            String string = list.get(x);
            list.add(x, string);
            x+=2;
            k++;
        }
        return list;
    }
}

level07.lesson06.task01

При тестировании IDEA зависает и спустя время выскакивает ошибка



В IDEA программа компилируется и выполняется.

/* 5 различных строчек в списке
1. Создай список строк.
2. Добавь в него 5 различных строчек.
3. Выведи его размер на экран.
4. Используя цикл выведи его содержимое на экран, каждое значение с новой строки.
*/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));

        ArrayList<String> list = new ArrayList<String>();

        for (int i = 0; i < 5; i++) {
            list.add(rd.readLine());
        }

        System.out.println(list.size());

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

    }
}