понедельник, 30 января 2017 г.

level09.lesson11.bonus02

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

import java.io.*;

/* Нужно добавить в программу новую функциональностьЗадача: 
Программа вводит два имени файла. И копирует первый файл на место, 
заданное вторым именем.Новая задача: Программа вводит два имени файла. 
И копирует первый файл на место, заданное вторым именем. 
Если файла (который нужно копировать) с указанным именем не существует, 
топрограмма должна вывести надпись «Файл не существует.» 
и еще раз прочитать имя файла с консоли, а уже потом считывать 
файл для записи.*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String sourceFileName = reader.readLine();
        if (!(new File(sourceFileName).exists()))
        {
            System.out.println("Файл не существует.");
            sourceFileName = reader.readLine();
        }

        String destinationFileName = reader.readLine();


 FileInputStream fileInputStream = new FileInputStream(sourceFileName);
 FileOutputStream fileOutputStream = new FileOutputStream(destinationFileName);

        while (fileInputStream.available() > 0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
        }

        fileInputStream.close();
        fileOutputStream.close();
    }
}

level09.lesson11.bonus01

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

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

/* Нужно исправить программу, чтобы компилировалась и работалаЗадача: 
Программа вводит два имени файла. И копирует первый файл 
на место заданное вторым именем.*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String sourceFileName = reader.readLine();
        String destinationFileName = reader.readLine();

 java.io.FileInputStream fileInputStream = new java.io.FileInputStream(sourceFileName);
 java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream(destinationFileName);
        int count = 0;
        while (fileInputStream.available()>0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
            count++;
        }

        System.out.println("Скопировано байт " + count);

        fileInputStream.close();
        fileOutputStream.close();
    }
}

level09.lesson11.home09

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

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/* Десять котовСоздать класс кот – Cat, с полем «имя» (String).
 Создать словарь Map() и добавить туда 10 котов в 
виде «Имя»-«Кот».Получить из Map множество(Set) всех имен и 
вывести его на экран.*/
public class Solution
{
    public static void main(String[] args)
    {
        Map map = createMap();
        Set set = convertMapToSet(map);
        printCatSet(set);
    }

    public static Map createMap()
    {
        //напишите тут ваш код        Map map = new HashMap();
        String cat;
        for (int i=0; i <10; i++)
        {
            cat = "Tom" +i;
            map.put(cat, new Cat(cat));
        }
        return map;
    }

    public static Set convertMapToSet(Map map)
    {
        //напишите тут ваш код        Set set = new HashSet();
        set.addAll(map.values());
        return set;
    }

    public static void printCatSet(Set set)
    {
        for (Cat cat:set)
        {
            System.out.println(cat);
        }
    }

    public static class Cat
    {
        private String name;

        public Cat(String name)
        {
            this.name = name;
        }

        public String toString()
        {
            return "Cat "+this.name;
        }
    }


}

level09.lesson11.home08

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

import java.util.ArrayList;

/* Список из массивов чиселСоздать список, элементами которого 
будут массивы чисел. 
Добавить в список пять объектов–массивов длиной 5, 2, 4, 7, 0 
соответственно. Заполнить массивы любыми данными и вывести их 
на экран.*/
public class Solution
{
    public static void main(String[] args)
    {
        ArrayList<int[]> list = createList();
        printList(list);
    }

    public static ArrayList<int[]> createList()
    {
        //напишите тут ваш код 
 ArrayList<int[]> list = new ArrayList<int[]>();
        int[] list1 = new int[5];
        int[] list2 = new int[2];
        int[] list3 = new int[4];
        int[] list4 = new int[7];
        int[] list5 = new int[0];
        for (int i=0; i < list1.length;i++)
        {
            list1[i] = i;
        }
        list.add(list1);
        for (int i=0; i < list2.length;i++)
        {
            list2[i] = i;
        }
        list.add(list2);
        for (int i=0; i < list3.length;i++)
        {
            list3[i] = i +2;
        }
        list.add(list3);
        for (int i=0; i < list4.length;i++)
        {
            list4[i] = i +3;
        }
        list.add(list4);
        for (int i=0; i < list5.length;i++)
        {
            list5[i] = i +4;
        }
        list.add(list5);

        return  list;

    }

    public static void printList(ArrayList<int[]> list)
    {
        for (int[] array: list )
        {
            for (int x: array)
            {
                System.out.println(x);
            }
        }
    }
}

level09.lesson11.home07

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

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

    public void main(String[] args)
    {
        Solution room = new Solution();
        room.A = 5;

        Solution.D = 5;
    }

    public int getA()
    {
        return A;
    }

}

level09.lesson11.home06

package com.javarush.test.level09.lesson11.home06;

import java.util.ArrayList;

/* Сказка «Красная Шапочка»1. Есть пять классов: красная шапочка, 
бабушка, пирожок, 
дровосек, волк.2. У каждого класса есть 2 поля: убил 
(killed ArrayList) и 
съел (ate ArrayList).3. Необходимые объекты созданы 
(hood, grandmother, ...).4. Расставь правильно связи, 
кто кого съел и убил, чтобы 
получилась логика сказки «Красная Шапочка».PS: 
пирожки никто не ел. Их только несли. Волк чуток поел. 
А его потом убили.*/
public class Solution {
    public static LittleRedRidingHood hood = new LittleRedRidingHood();
    public static Grandmother grandmother = new Grandmother();
    public static Patty patty = new Patty();
    public static Woodman woodman = new Woodman();
    public static Wolf wolf = new Wolf();

    public static void main(String[] args) {
        // напишите тут ваш код        wolf.ate.add(hood);
        wolf.ate.add(grandmother);
        woodman.killed.add(wolf);
    }

    //красная шапочка 
 public static class LittleRedRidingHood extends StoryItem {
    }

    //бабушка 
 public static class Grandmother extends StoryItem {
    }

    //пирожок     
public static class Patty extends StoryItem {
    }

    //дровосек    public static class Woodman extends StoryItem {
    }

    //волк    public static class Wolf extends StoryItem {
    }

    public static abstract class StoryItem {
        public ArrayList killed = new ArrayList();
        public ArrayList ate = new ArrayList();
    }
}

пятница, 27 января 2017 г.

level09.lesson11.home05

package com.javarush.test.level09.lesson11.home05;

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

/* Гласные и согласные буквыНаписать программу, которая вводит 
с клавиатуры строку текста.Программа должна вывести на экран 
две строки:1. первая строка содержит только гласные буквы2. 
вторая - только согласные буквы и знаки препинания из 
введённой строки.Буквы соединять пробелом, каждая строка 
должна заканчиваться 
пробелом.
Пример ввода:Мама мыла раму.Пример вывода:а а ы а а уМ м м л р м .*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код 
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String stroca = reader.readLine();
        String str1, str2;
        str1 ="";
        str2 ="";
        char[] strtmp = stroca.toCharArray();
        for (int i=0; i length
;i++)
{
if (isVowel(strtmp[i]))
str1 = str1 + strtmp[i] +" ";
else {
if (strtmp[i] !=' ')
str2 = str2 + strtmp[i] + " ";
}
}
System.out.println(str1);
System.out.println(str2);
}


public static char[] vowels = new char[]{'а', 'я', 'у', 'ю', 'и', 'ы', 'э', 'е', 'о', 'ё'};

//метод проверяет, гласная ли буква public static boolean isVowel(char c)
{
c = Character.toLowerCase(c);

for (char d : vowels) //ищем среди массива гласных {
if (c == d)
return true;
}
return false;
}
}

level09.lesson11.home04

package com.javarush.test.level09.lesson11.home04;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/* Конвертер датВвести с клавиатуры дату в формате «08/18/2013» 
Вывести на экран эту дату в виде «AUG 18, 2013». 
Воспользоваться объектом Date и SimpleDateFormat.*/
public class Solution {

    public static void main(String[] args) throws Exception {
        //напишите тут ваш код 
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Date dat  = new Date(reader.readLine());
 SimpleDateFormat formate = new SimpleDateFormat("MMM dd, y", Locale.ENGLISH);
        System.out.println(formate.format(dat).toUpperCase());
    }
}

level09.lesson11.home03

package com.javarush.test.level09.lesson11.home03;

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

/* Метод в try..catchВводить с клавиатуры числа. Код по чтению чисел 
с клавиатуры 
вынести в отдельный метод readData.Обернуть все тело 
(весь код внутри readData, кроме объявления 
списка, где будут храниться числа и BufferedReader - а) 
этого метода в try..catch.Если пользователь ввёл какой-то текст,
 вместо ввода числа, 
то метод должен перехватить исключение и вывести на экран все 
введенные числа в качестве результата.Числа выводить с новой 
строки сохраняя порядок ввода.*/
public class Solution
{
    public static void main(String[] args) {
        readData();
    }

    public static void readData() {
        //напишите тут ваш код
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        List list = new ArrayList();
        try        {
            while (2>1)
            {
                list.add(Integer.parseInt(reader.readLine()));
            }
        }
        catch (Exception e)
        {
            for (int i=0; i             {
                System.out.println(list.get(i));
            }
        }
    }
}

level09.lesson11.home02

package com.javarush.test.level09.lesson11.home02;

/* Обратный отсчёт от 10 до 0Написать в цикле обратный отсчёт от 
10 до 0. 
Для задержки иcпользовать Thread.sleep(100);Обернуть вызов 
sleep в try..catch.*/
public class Solution
{
    public static void main(String[] args)
    {
        for (int i = 10; i >= 0; i--)
        {
            System.out.println(i);

            //напишите тут ваш код            try            {
                Thread.sleep(100);
            }
            catch (Exception e)
            {
                System.out.println(e);
            }

        }
    }
}

level09.lesson11.home01

package com.javarush.test.level09.lesson11.home01;

/* Деление на нольСоздай метод public static void divisionByZero, 
в котором подели любое число на ноль и выведи на экран результат 
деления.Оберни вызов метода divisionByZero в try..catch. 
Выведи стек-трейс исключения используя метод 
exception.printStackTrace()*/
public class Solution {

    public static void main(String[] args) {
        try        {
            divisionByZero();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    public static void divisionByZero() throws Exception{
        System.out.println(1/0);
    }
}

level09.lesson08.task05

package com.javarush.test.level09.lesson08.task05;

/* Перехват unchecked исключений
В методе processExceptions обработайте все unchecked исключения.
Нужно вывести стек-трейс каждого возникшего исключения используя метод printStack.
Можно использовать только один блок try..
*/

public class Solution
{
    public static void main(String[] args) {
        processExceptions(new Solution());
    }

    public static void processExceptions(Solution obj) {
        try
        {
            obj.method1();
            obj.method2();
            obj.method3();
        }
        catch (NullPointerException e)
        {
            printStack(e);
        }
        catch (IndexOutOfBoundsException e)
        {
            printStack(e);
        }
        catch (NumberFormatException e)
        {
            printStack(e);
        }

    }

    public static void printStack(Throwable throwable) {
        System.out.println(throwable);
        for (StackTraceElement element : throwable.getStackTrace()) {
            System.out.println(element);
        }
    }

    public void method1(){
        throw new NullPointerException();
    }

    public void method2() {
        throw new IndexOutOfBoundsException();
    }

    public void method3() {
        throw new NumberFormatException();
    }
}

level09.lesson08.task04

package com.javarush.test.level09.lesson08.task04;

import java.io.IOException;
import java.rmi.RemoteException;

/* Перехват checked исключений
В методе processExceptions обработайте все checked исключения.
Нужно вывести на экран каждое возникшее checked исключение.
Можно использовать только один блок try..
*/

public class Solution {
    public static void main(String[] args) {
        processExceptions(new Solution());

    }

    public static void processExceptions(Solution obj) {
try
{
    obj.method1();
    obj.method2();
    obj.method3();
}
catch (RemoteException e)
{
    System.out.println(e);
}

catch (IOException e)
{
    System.out.println(e);
}
catch (NoSuchFieldException e)
{
    System.out.println(e);
}

    }

    public void method1() throws IOException {
        throw new IOException();
    }

    public void method2() throws NoSuchFieldException {
        throw new NoSuchFieldException();
    }

    public void method3() throws RemoteException {
        throw new RemoteException();
    }
}

level09.lesson08.task03

package com.javarush.test.level09.lesson08.task03;

import java.io.CharConversionException;
import java.io.IOException;
import java.nio.file.FileSystemException;

/* Перехват выборочных исключений
1. Разберись, какие исключения бросает метод BEAN.methodThrowExceptions.
2. Метод processExceptions должен вызывать метод BEAN.methodThrowExceptions и обрабатывать исключения:
2.1. если возникло исключение FileSystemException, то логировать его (вызвать метод BEAN.log) и пробросить дальше
2.2. если возникло исключение CharConversionException или любое другое IOException, то только логировать его - вызвать метод BEAN.log
3. Добавь в сигнатуру метода processExceptions класс исключения, которое ты пробрасываешь в п.2.1.
4. В методе main обработай оставшееся исключение - логируй его. Используй try..catch

Подсказка:
Если ты захватил исключение MyException, которое не хотел захватывать, его можно пробросить дальше кодом вида:
catch (MyException e) {
throw e;
}
*/

public class Solution {
    public static StatelessBean BEAN = new StatelessBean();

    public static void main(String[] args) {
        try
        {
            processExceptions();
        }
        catch (Exception e)
        {
            BEAN.log(e);
        }
    }

    public static void processExceptions() throws FileSystemException{
        try
        {
            BEAN.methodThrowExceptions();
        }
        catch (CharConversionException e)
        {
            BEAN.log(e);
        }
        catch (FileSystemException e)
        {
            BEAN.log(e);
            throw e;
        }
        catch (IOException e)
        {
            BEAN.log(e);
        }


    }

    public static class StatelessBean {
        public void log(Exception exception) {
            System.out.println(exception.getMessage() + ", " + exception.getClass().getSimpleName());
        }

        public void methodThrowExceptions() throws CharConversionException, FileSystemException, IOException {
            int i = (int) (Math.random() * 3);
            if (i == 0)
                throw new CharConversionException();
            if (i == 1)
                throw new FileSystemException("");
            if (i == 2)
                throw new IOException();
        }
    }
}

level09.lesson08.task02

package com.javarush.test.level09.lesson08.task02;

/* Перехватывание исключений
1. Есть три исключения последовательно унаследованные от Exception:
2. class Exception1 extends  Exception
3. class Exception2 extends  Exception1
4. class Exception3 extends  Exception2
5. Есть метод, который описан так:
5.1. public static void method1() throws Exception1, Exception2, Exception3

6. Напиши catch, который перехватит все три Exception1, Exception2 и Exception3
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
      //напишите тут ваш код
try
{
    method1();
}
catch (Exception3 e)
{
    System.out.println(e);
}
catch (Exception2 e)
{
    System.out.println(e);
}
catch (Exception1 e)
{
    System.out.println(e);
}

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

    }

    public static void method1() throws Exception1, Exception2, Exception3
    {
        int i = (int) (Math.random() * 3);
        if (i == 0)
            throw new Exception1();
        if (i == 1)
            throw new Exception2();
        if (i == 2)
            throw new Exception3();
    }
}

class Exception1 extends Exception {
}

class Exception2 extends Exception1 {
}

class Exception3 extends Exception2 {
}

level09.lesson08.task01

package com.javarush.test.level09.lesson08.task01;

import java.io.FileNotFoundException;
import java.net.URISyntaxException;
import java.util.HashMap;

/* Исключения
Есть метод, который выбрасывает два исключения, унаследованные от Exception, и два унаследованных от RuntimeException:
NullPointerException, ArithmeticException, FileNotFoundException, URISyntaxException.

Нужно перехватить NullPointerException и FileNotFoundException, но не перехватывать
ArithmeticException и URISyntaxException. Как это сделать?
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        try
        {
            method1();
        }
        catch (NullPointerException e)
        {
            System.out.println(e);
        }
        catch (FileNotFoundException e)
        {
            System.out.println(e);
        }

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

    }

    public static void method1() throws NullPointerException, ArithmeticException, FileNotFoundException, URISyntaxException
    {
        int i = (int) (Math.random() * 4);
        if (i == 0)
            throw new NullPointerException();
        if (i == 1)
            throw new ArithmeticException();
        if (i == 2)
            throw new FileNotFoundException();
        if (i == 3)
            throw new URISyntaxException("", "");
    }
}

level09.lesson06.task05

package com.javarush.test.level09.lesson06.task05;

import java.util.HashMap;

/* Исключение при работе с коллекциями Map
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
HashMap map = new HashMap(null);
map.put(null, null);
map.remove(null);
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
try
{
    HashMap map = new HashMap(null);
    map.put(null, null);
    map.remove(null);
}
catch (Exception e)
{
    System.out.println(e);
}

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

    }
}

level09.lesson06.task04

package com.javarush.test.level09.lesson06.task04;

import java.util.ArrayList;

/* Исключение при работе с коллекциями List
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
ArrayList list = new ArrayList();
String s = list.get(18);
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        try
        {
            ArrayList list = new ArrayList();
            String s = list.get(18);
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

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

    }
}

level09.lesson06.task03

package com.javarush.test.level09.lesson06.task03;

/* Исключение при работе с массивами
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
int[] m = new int[2];
m[8] = 5;
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        try
        {
            int[] m = new int[2];
            m[8] = 5;
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

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

    }
}

level09.lesson06.task02

package com.javarush.test.level09.lesson06.task02;

/* Исключение при работе со строками
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
String s = null;
String m = s.toLowerCase();
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        try
        {
            String s = null;
            String m = s.toLowerCase();
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

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

    }
}

level09.lesson06.task01

package com.javarush.test.level09.lesson06.task01;

/* Исключение при работе с числами
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
int a = 42 / 0;
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        try
        {
            int a = 42 / 0;
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

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

    }
}

четверг, 26 января 2017 г.

level09.lesson02.task05

package com.javarush.test.level09.lesson02.task05;

/* Метод должен возвращать результат – глубину его стек-трейса
Написать метод, который возвращает результат – глубину его стек трейса – количество методов в нем (количество элементов в списке). Это же число метод должен выводить на экран.
*/

public class Solution
{
    public static int getStackTraceDeep()
    {
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements.length);
        return stackTraceElements.length;


    }
}

level09.lesson02.task04

package com.javarush.test.level09.lesson02.task04;

/* Стек-трейс длиной 10 вызовов
Напиши код, чтобы получить стек-трейс длиной 10 вызовов.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static StackTraceElement[] method1()
    {
        return method2();
    }

    public static StackTraceElement[] method2()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method3()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method4()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method5()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method6()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method7()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method8()
    {
        //напишите тут ваш код

    }

    public static StackTraceElement[] method9()
    {
        return method10();
    }

    public static StackTraceElement[] method10()
    {
        return Thread.currentThread().getStackTrace();
    }
}

level09.lesson02.task03

package com.javarush.test.level09.lesson02.task03;

/* Метод должен вернуть номер строки кода, из которого вызвали этот метод
Написать пять методов, которые вызывают друг друга. Метод должен вернуть номер строки кода, из которого вызвали этот метод. Воспользуйся функцией: element.getLineNumber().
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static int method1()
    {
        method2();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[2].getLineNumber();
    }

    public static int method2()
    {
        method3();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[2].getLineNumber();

    }

    public static int method3()
    {
        method4();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[2].getLineNumber();

    }

    public static int method4()
    {
        method5();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[2].getLineNumber();

    }

    public static int method5()
    {
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[2].getLineNumber();

    }
}

level09.lesson02.task01

package com.javarush.test.level09.lesson02.task01;

/* Каждый метод должен возвращать свой StackTrace
Написать пять методов, которые вызывают друг друга. Каждый метод должен возвращать свой StackTrace.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static StackTraceElement[] method1()
    {
        method2();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement element : stackTraceElements)
        {
            System.out.println(element.getMethodName());
        }
        return stackTraceElements;

    }

    public static StackTraceElement[] method2()
    {
        method3();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement element : stackTraceElements)
        {
            System.out.println(element.getMethodName());
        }
        return stackTraceElements;

    }

    public static StackTraceElement[] method3()
    {
        method4();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement element : stackTraceElements)
        {
            System.out.println(element.getMethodName());
        }
        return stackTraceElements;

    }

    public static StackTraceElement[] method4()
    {
        method5();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement element : stackTraceElements)
        {
            System.out.println(element.getMethodName());
        }
        return stackTraceElements;

    }

    public static StackTraceElement[] method5()
    {
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        for (StackTraceElement element : stackTraceElements)
        {
            System.out.println(element.getMethodName());
        }
        return stackTraceElements;

    }
}

level09.lesson02.task02

package com.javarush.test.level09.lesson02.task02;

/* И снова StackTrace
Написать пять методов, которые вызывают друг друга. Каждый метод должен возвращать имя метода, вызвавшего его, полученное с помощью StackTrace.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static String method1()
    {
        method2();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[2].getMethodName());
        return (stackTraceElements[2].getMethodName());

    }

    public static String method2()
    {
        method3();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[2].getMethodName());
        return (stackTraceElements[2].getMethodName());

    }

    public static String method3()
    {
        method4();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[2].getMethodName());
        return (stackTraceElements[2].getMethodName());

    }

    public static String method4()
    {
        method5();
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[2].getMethodName());
        return (stackTraceElements[2].getMethodName());

    }

    public static String method5()
    {
        //напишите тут ваш код
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(stackTraceElements[2].getMethodName());
        return (stackTraceElements[2].getMethodName());

    }
}

level08.lesson11.bonus02

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

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

/* Нужно добавить в программу новую функциональностьЗадача: Программа определяет, какая семья (фамилию) живёт 
в доме с указанным номером.Новая задача: Программа должна работать не с номерами домов, 
а с городами:Пример ввода:МоскваИвановыКиевПетровыЛондонАбрамовичи
Лондон
Пример вывода:Абрамовичи*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        //list of addresses        List addresses = new ArrayList();
        Map map = new HashMap();
        while (true)
        {
            String family = reader.readLine();
            if (family.isEmpty()) break;
            String sity = reader.readLine();
            if (sity.isEmpty()) break;
            map.put(family,sity);
        }

        //read home number        String sityfinde = reader.readLine();

        if (map.containsKey(sityfinde))
        {
            System.out.println(map.get(sityfinde));
        }
    }
}

среда, 25 января 2017 г.

level08.lesson11.bonus03

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

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

/* Задача по алгоритмамЗадача: Введи с клавиатуры 20 слов и выведи их в алфавитном порядке.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] array = new String[20];
        for (int i = 0; i < array.length; i++)
        {
            array[i] = reader.readLine();
        }

        sort(array);

        for (String x : array)
        {
            System.out.println(x);
        }
    }

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

    //Метод для сравнения строк: 'а' больше чем 'b'    public static boolean isGreaterThan(String a, String b)
    {
        return a.compareTo(b) > 0;
    }
}

level08.lesson11.bonus01

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

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

/* Номер месяцаПрограмма вводит с клавиатуры имя месяца и выводит его 
номер на экран в виде: «May is 5 month».Используйте коллекции.*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
        //напишите тут ваш код BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String month = reader.readLine();
        Map map = new HashMap();
        map.put("January", 1);
        map.put("February", 2);
        map.put("March", 3);
        map.put("April", 4);
        map.put("May", 5);
        map.put("June", 6);
        map.put("July", 7);
        map.put("August", 8);
        map.put("September", 9);
        map.put("October", 10);
        map.put("November", 11);
        map.put("Desember", 12);
        if (map.containsKey(month))
       System.out.println(month + " is "+ map.get(month) + " month");
    }

}

level08.lesson11.home09

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

import java.util.Date;

/* Работа с датой1. Реализовать метод isDateOdd(String date) так, 
чтобы он возвращал true, если количество дней 
с начала года - нечетное число, иначе false2. String date передается в формате MAY 1 2013Не забудьте учесть первый день года.Пример:JANUARY 1 2000 = trueJANUARY 2 2020 = false*/
public class Solution
{
    public static void main(String[] args)
    {
        System.out.println(isDateOdd("JANUARY 1 2000"));

    }

    public static boolean isDateOdd(String date)
    {
        Date dat_new = new Date(date);
        Date start_year = new Date(date);
        start_year.setHours(0);
        start_year.setMinutes(0);
        start_year.setSeconds(0);
        start_year.setDate(1);
        start_year.setMonth(0);
        long d = dat_new.getTime() - start_year.getTime();
        long ms = 1000*60*60*24;
        int dayCount = (int)(d/ms);
        if (dayCount%2==0)
        return true;
        else            return false;
    }
}

level08.lesson11.home08

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

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

/* Пять наибольших чиселСоздать массив на 20 чисел. Заполнить его числами с клавиатуры.
 Вывести пять наибольших чисел.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Integer[] array = new Integer[20];
        for (int i = 0; i < array.length; i++)
        {
            array[i] = Integer.parseInt(reader.readLine());
        }

        sort(array);

        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);
        System.out.println(array[4]);
    }

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

    }
}

level08.lesson11.home07

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

/* Переставь один модификатор staticПереставь один модификатор static, чтобы пример скомпилировался.*/
public class Solution
{
    public static int A = 5;
    public static int B = 2;

    public int C = A*B;
    public static int D = B*A;

    public static void main(String[] args)
    {
    }

    public  int getValue()
    {
        return D;
    }

    public int getValue2()
    {
        return C;
    }
}

level08.lesson11.home06

package com.javarush.test.level08.lesson11.home06;

/* Вся семья в сборе1. Создай класс Human с полями имя (String), пол (boolean), 
возраст (int), дети (ArrayList).2. Создай объекты и заполни их так, чтобы получилось: 
два дедушки, две бабушки, отец, мать, трое детей.3. Вывести все объекты Human на экран.*/
import java.util.ArrayList;
import java.util.Arrays;

public class Solution
{
    public static void main(String[] args)
    {
        //напишите тут ваш код        Human children1 = new Human("Galya", false, 18,null);
        Human children2 = new Human("Gala", false, 14,null);
        Human children3 = new Human("Ivan", true, 14,null);
Human father = new Human("Ivan", true, 40,new ArrayList(Arrays.asList(children1,children2,children3)));
Human mother = new Human("Nastya", false, 38,new ArrayList(Arrays.asList(children1,children2,children3)));
Human grandfather1 = new Human("Vasya", true, 60,new ArrayList(Arrays.asList(father)));
Human grandfather2 = new Human("Petro", true, 62,new ArrayList(Arrays.asList(father)));
Human grandmother1 = new Human("Olya", false, 55,new ArrayList(Arrays.asList(mother)));
Human grandmother2 = new Human("Masha", false, 57,new ArrayList(Arrays.asList(mother)));
        System.out.println(children1);
        System.out.println(children2);
        System.out.println(children3);
        System.out.println(father);
        System.out.println(mother);
        System.out.println(grandfather1);
        System.out.println(grandfather2);
        System.out.println(grandmother1);
        System.out.println(grandmother2);


    }

    public static class Human
    {
        //напишите тут ваш код        String name;
        Boolean sex;
        Integer age;
        ArrayList children;
        public Human (String name, Boolean sex, Integer age)
        {
            this.name = name;
            this.sex = sex;
            this.age = age;

        }
public Human (String name, Boolean sex, Integer age, ArrayList children)
        {
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.children = children;

        }

        public String toString()
        {
            String text = "";
            text += "Имя: " + this.name;
            text += ", пол: " + (this.sex ? "мужской" : "женский");
            text += ", возраст: " + this.age;
            int childCount =0;
            if (this.children != null)
            {
                childCount = this.children.size();
            }
            if (childCount > 0)
            {
                text += ", дети: "+this.children.get(0).name;

                for (int i = 1; i < childCount; i++)
                {
                    Human child = this.children.get(i);
                    text += ", "+child.name;
                }
            }

            return text;
        }
    }

}