четверг, 2 февраля 2017 г.

level10.lesson11.bonus03

package com.javarush.test.level10.lesson11.bonus03;

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

/* Задача по алгоритмамЗадача: ввести с клавиатуры 30 чисел. 
Вывести 10-е и 11-е минимальные числа.
 Пояснение:Самое минимальное число – 1-е минимальное.
 Следующее минимальное после него – 2-е минимальное
 Пример:1 6 5  7  1  15   63   88 
Первое минимальное – 1 
Второе минимальное – 1
 Третье минимальное – 5 
Четвертое минимальное – 6*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int[] array = new int[30];
        for (int i = 0; i < 30; i++)
        {
            array[i] = Integer.parseInt(reader.readLine());
        }

        sort(array);

        System.out.println(array[9]);
        System.out.println(array[10]);
    }

    public static void sort(int[] array)
    {
        //напишите тут ваш код        Arrays.sort(array);
    }
}

level10.lesson11.bonus02

package com.javarush.test.level10.lesson11.bonus02;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/* Нужно добавить в программу новую функциональностьЗадача: 
Программа вводит с клавиатуры пару (число и строку) и выводит 
их на экран.Новая задача: Программа вводит с клавиатуры пары 
(число и строку), сохраняет их в HashMap.
 Пустая строка – конец ввода данных. Числа могу повторяться. 
Строки всегда уникальны. Введенные данные не должны потеряться! 
Затем программа выводит содержание HashMap на экран.
Пример ввода:1Мама2Рама1Мыла
Пример вывода:1 Мыла2 Рама1 Мама*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        HashMap map = new HashMap();
        while (true)
        {
            String temp = reader.readLine();
            if (temp.isEmpty())
                break;
            int id = Integer.parseInt(temp);
            String name = reader.readLine();
            map.put(name,id);

        }
        for (Map.Entry pair : map.entrySet())
        {
            System.out.println(pair.getValue() +" " + pair.getKey());
        }
    }
}

level10.lesson11.bonus01

package com.javarush.test.level10.lesson11.bonus01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

/* Нужно исправить программу, чтобы компилировалась и работала 
Задача: Программа демонстрирует работу HashMap: 
вводит с клавиатуры набор пар (номер и строку), 
помещает их в HashMap и выводит на экран содержимое HashMap.*/
public class Solution {
    HashMap map;
    Integer index;
    String name;

    public Solution() {
        this.map = new HashMap();
//        map.put(index, name);    }

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

        for (int i = 0; i < 10; i++) {
            int index = Integer.parseInt(reader.readLine());
            String name = reader.readLine();
            solution.map.put(index, name);
        }

        for (Map.Entry pair : solution.map.entrySet()) {
            Integer index = pair.getKey();
            String name = pair.getValue();
            System.out.println("Id=" + index + " Name=" + name);
        }
    }
}

level10.lesson11.home10

 package com.javarush.test.level10.lesson11.home10;

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

/* Безопасное извлечение из спискаСоздать список целых чисел. 
Ввести с клавиатуры 20 целых чисел. 
Создать метод по безопасному извлечению чисел из списка:
 int safeGetElement(ArrayList list, int index, int defaultValue)
 Метод должен возвращать элемент списка (list) 
по его индексу (index). 
Если в процессе получения элемента возникло исключение, 
его нужно перехватить, и метод должен вернуть defaultValue.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList list = new ArrayList();
        for (int i = 0; i < 20; i++)
        {
            int x = Integer.parseInt(reader.readLine());
            list.add(x);
        }

        System.out.println(safeGetElement(list, 5, 1));
        System.out.println(safeGetElement(list, 20, 7));
        System.out.println(safeGetElement(list, -5, 9));
    }

    public static int safeGetElement(ArrayList list, int index, int defaultValue)
    {
      //напишите тут ваш код 
 try 
 {
            return list.get(index);
        }
        catch (Exception e)
        {
            return defaultValue;
        }
    }

}

level10.lesson11.home09

package com.javarush.test.level10.lesson11.home09;

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

/* Одинаковые слова в спискеВвести с клавиатуры в список 20 слов.
 Нужно подсчитать количество одинаковых слов в списке.
 Результат нужно представить в виде словаря Map
где первый параметр – уникальная строка,а второй – число,
 сколько раз данная строка встречалась в списке.
 Вывести содержимое словаря на экран.В тестах регистр 
(большая/маленькая буква) влияет на результат.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList words = new ArrayList();
        for (int i = 0; i < 20; i++)
        {
            words.add(reader.readLine());
        }

        Map map = countWords(words);

        for (Map.Entry pair : map.entrySet())
        {
           System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }

    public static Map countWords(ArrayList list)
    {
        HashMap result = new HashMap();
        for (String element : list)
        {
            result.put(element,0);
        }
        for (String listElement : list)
        {
            if (result.containsKey(listElement))
            {
                int n = result.get(listElement);
                result.put(listElement,n+1);
            }
        }

        //напишите тут ваш код

        return result;
    }

}

level10.lesson11.home08

package com.javarush.test.level10.lesson11.home08;

import java.util.ArrayList;
import java.util.Arrays;

/* Массив списков строкСоздать массив, элементами которого будут 
списки строк. Заполнить массив любыми данными и 
вывести их на экран.*/
public class Solution
{
    public static void main(String[] args)
    {
        ArrayList[] arrayOfStringList =  createList();
        printList(arrayOfStringList);
    }

    public static ArrayList[] createList()
    {
        //напишите тут ваш код 
 ArrayList[] list = new ArrayList[3];
        list[0] = new ArrayList();
        list[0].add("a");
        list[0].add("b");
        list[0].add("c");
        list[1] = new ArrayList();
        list[1].add("aa");
        list[1].add("bb");
        list[1].add("cc");
        list[2] = new ArrayList();
        list[2].add("test");
        list[2].add("proba");
        list[2].add("pera");


        return list;
    }

    public static void printList(ArrayList[] arrayOfStringList)
    {
        for (ArrayList list: arrayOfStringList)
        {
            for (String s : list)
            {
                System.out.println(s);
            }
        }
    }
}

среда, 1 февраля 2017 г.

level10.lesson11.home07

package com.javarush.test.level10.lesson11.home07;

/* Расставьте минимум static-овРасставьте как можно 
меньше модификаторов static так, 
чтобы пример скомпилировался.*/
public class Solution
{
    public int A = 5;
    public static int B = 5;
    public static int C = 5;
    public static int D = 5;

    public static void main(String[] args)
    {
        Solution solution = new Solution();
        solution.A = 5;
        solution.B = 5 * B;
        solution.C = 5 * C * D;
        Solution.D = 5 * D * C;

        Solution.D = 5;
    }

    public int getA()
    {
        return A;
    }

}