• ,

level15.lesson09.task01

Условие:

В статическом блоке инициализировать labels 5 различными парами ключ-значение.
Требования:
1. В классе Solution должен быть только один метод(main).
2. В классе Solution должно быть объявлено статическое поле labels типа Map.
3. Поле labels должно быть заполнен 5 различными парами ключ-значение в статическом блоке.
4. Метод main должен выводить содержимое labels на экран.

Мой код:

package com.javarush.task.task15.task1514;

import java.util.HashMap;
import java.util.*;

/* 
Статики-1
*/

public class Solution {
    public static Map labels = new HashMap<Double, String>();
    static{
        labels = new HashMap<Double, Integer>();
        labels = new HashMap<Double, Boolean>();
        labels = new HashMap<Double, Byte>();
        labels = new HashMap<Double, Object>();
        labels = new HashMap<Double, Short>();
        labels = new HashMap<Double, Double>();
    }
    public static void main(String[] args) {
        System.out.println(labels);
    }
}
  • ,

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));
    }

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

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.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. задача решена, всем отписавшимся спасибо, грустно, что допустил ошибки в довольно таки очевидных местах…

level04.lesson02.task01

Реализовать метод setName
Реализовать метод setName, чтобы с его помощью можно было устанавливать значение переменной private String name равное переданному параметру String name.


public class Cat {
private String name;

public void setName(String name) {
//add your code here
}
}

Я реально не могу вкурить что от меня хотят. Помогите, пожалуйста, разъянить задание и найти алгоритм решения
  • ,

Задача level24.lesson04.task01

/* Наследование от внутреннего класса
Внутри класса Solution создайте 2 внутренних public класса Apt3Bedroom, BigHall.
Унаследуйте их от Apartments и Hall.
*/
Что я неправильно делаю?

public class Solution {
    public class Building
    {
        public class Hall
        {
            private BigDecimal square;
            public Hall(BigDecimal square)
            {
                this.square = square;
            }
        }
        public class Apartments {}
    }
    public class Apt3Bedroom extends Building.Apartments
    {
        Apt3Bedroom(Building a){a.super();}
    }
    public class BigHall extends Building.Hall
    {
        public BigHall(BigDecimal square)
        {
           new Building().super(square);
        }
    }
}

level25.lesson09.task01

Поживем — увидим
Все исключения, которые возникают в процессе работы нити Solution, должны быть обработаны одним из вариантов:
1. Если это Error, то вывести в консоль «Нельзя дальше работать»
2. Если это Exception, то вывести в консоль «Надо обработать»
3. Если это Throwable, то вывести в консоль «ХЗ»
Реализуйте эту логику.

Темы, посвященной этой задаче не было, поэтому создам, чтобы другие потом не воспроизводили метод научного тыка, как я.
Задача совершенно простая, но из условия и лекции в принципе не понятно, как именно ее необходимо воспроизводить. Поэтому дополню условие:
В конструкторе реализуйте метод setUncaughtExceptionHandler. Ну и instanceof, конечно.

level08.lesson08.task01

Почему не проходит?
public class Solution
{
    public static Set<String> createSet()
    {
        Set<String> set = new HashSet<String>();
        Collections.addAll(set, "Люк","Лифт","Лейка","Лампа","Лайка","Лейтенант","Линейка","Луч","Лоск",
                "Лимб","Ловушка","Лист","Листья","Лера","Леша","Ларец","Ласточка",
                "Лимон","Листовка","Ларек");
        return set;
    }
}

level05.lesson09.task01

Всем доброго времени суток.
Пожалуйста помогите разобраться не могу понять почему не компилитцо:
package com.javarush.test.level05.lesson09.task01;

/* Создать класс Friend
Создать класс Friend (друг) с тремя конструкторами:
- Имя
- Имя, возраст
- Имя, возраст, пол
*/

public class Friend
{
    //Напишите тут ваш код
    private String name;
    private int age;
    private String sex;

    public void initialize(String name)
    {
        this.name = name;
    }

    public void initialize(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public void initialize(String name, int age, String sex)
    {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

}

level07.lesson09.task01

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

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

/* Три массива
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 reader = new BufferedReader(new InputStreamReader(System.in));
ArrayListlist = new ArrayList();
ArrayListlist1 = new ArrayList();
ArrayListlist2 = new ArrayList();
ArrayListlist3 = new ArrayList();
int ELEM_QUAN = 20;
boolean check = false;

for (int i = 0; i < ELEM_QUAN; i++){
list.add(Integer.parseInt(reader.readLine()));
}

for (int i = 0; i < ELEM_QUAN; i++){
int j = list.get(i);
if (j%3 == 0){
list1.add(j);
check = true;
}
if (j%2 == 0){
list2.add(j);
check = true;
}
if (check == false){//check'ом проверяем попало ли это число в один из списков, если нет то сюда
list3.add(j);
}

}

printList(list1);
printList(list2);
printList(list3);

}

public static void printList(Listlist) {
for(Integer s: list) System.out.println(s);
}
}

Хоть программа и компилится, и вроде бы нормально работает, проверку все равно не проходит.
Что не так?

level07 lesson09 task01

Доброго времени суток!

Подскажите в чем я ошибаюсь
?
*для эксперимента беру 5 чисел.


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

/* Три массива
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
    {
        //add your code here
        ArrayList<Integer> listBig = new ArrayList<Integer>();
        ArrayList<Integer> listA = new ArrayList<Integer>();
        ArrayList<Integer> listB = new ArrayList<Integer>();
        ArrayList<Integer> listC = new ArrayList<Integer>();

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

        for (int i = 0; i < 5; i++){
            String str = reader.readLine();
            int strI = Integer.parseInt(str);
            listBig.add(strI);
        }

        for (int i = 0; i <= listBig.size() - 1; i++) {
            Integer str = listBig.get(i);
            if (str % 3 == 0)
            {
                listA.add(str);
                if (str % 2 ==0)
                    listB.add(str);
            }
            else if (str % 2 == 0)
            {
                listB.add(str);
                if (str % 3 == 0)
                    listA.add(str);
            }
            else
                listC.add(str);
        }

        printList(listBig);
        printList(listA);
        printList(listB);
        printList(listC);
    }

    public static void printList(List<Integer> list) {
        //add your code here
/*
        for (Integer k: list){
            System.out.print(k);
        }
*/
        System.out.println(list);
    }
}

Вывод:
1
2
3
6
12
[1, 2, 3, 6, 12]
[3, 6, 12]
[2, 6, 12]
[1]