• ,

level08.lesson08.task05 компилируется тест не проходит

Условие задачи: /* Удалить людей, имеющих одинаковые имена
Создать словарь (Map<String, String>) занести в него десять записей по принципу «фамилия» — «имя».
Удалить людей, имеющих одинаковые имена.
*/


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

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


public class Solution
{
       
    public static HashMap<String, String> createMap()
    {
        String tempL, tempF, tempI;
        HashMap<String, String> map = new HashMap<String, String>();
        String fName= "Sergey",  lName = "Ivanov"; 
   
        map.put (lName, fName);
        map.put((lName.concat("a")), fName);
         for (int i = 2; i < 8; i++)
         {  
             tempI = Integer.toString(i);
             tempF = fName.concat(tempI);
             tempL = lName.concat(tempI);
             map.put(tempL, tempF);  
       }  
         return (map);
    }
  
   
    public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
    {
        String valueTemp;
        Set<String> setAll  = new HashSet<String>();    
        Set<String> setDubl = new HashSet<String>();
        for (Map.Entry<String, String> pair : map.entrySet())
            { 
            valueTemp =pair.getValue(); 
            if (setAll.contains(valueTemp)) setDubl.add(valueTemp);
            else setAll.add(valueTemp); 
              
            }

        for (String s  : setDubl) removeItemFromMapByValue (map, s);
  
    }
     
    
  
    public static void removeItemFromMapByValue(HashMap<String, String> map, String value)
    {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair : copy.entrySet())
        {
            if (pair.getValue().equals(value))
                map.remove(pair.getKey());
        }
    }
}

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

com.javarush.test.level05.lesson07.task05

/* Создать класс прямоугольник (Rectangle)
Создать класс прямоугольник (Rectangle). Его данными будут top, left, width, height (левая координата, верхняя, ширина и высота). Создать для него как можно больше методов initialize(…)
Примеры:
-	заданы 4 параметра: left, top, width, height
-	ширина/высота не задана (оба равны 0)
-	высота не задана (равно ширине) создаём квадрат
-	создаём копию другого прямоугольника (он и передаётся в параметрах)
*/

public class Rectangle
{
    int t=0;
    int l=0;
    int w=0;
    int h=0;
    
    public void initialize(int l, int t, int w, int h){
    this.l=l;
    this.t=t;
    this.w=w;
    this.h=h;
}

    public void initialize(int l, int t){
    this.l=l;
    this.t=t;
}

    public void initialize(int l, int t, int w, int h) {
    this.l=l;
    this.t=t;
    this.w=w;
    this.h=w;
}

    public void initialize(Rectangle rec){
    this.t=rec.t;
    this.l=rec.l;
    this.w=rec.w;
    this.h=rec.h;
}

}

src/com/javarush/test/level05/lesson07/task05/Rectangle.java:31: error: method initialize(int,int,int,int) is already defined in class Rectangle
public void initialize(int l, int t, int w, int h) {
^
1 error

Получаю вот такой еррор. В чем именно суть — не могу понять. Ошибка в том что у меня два инициализатора с одинаковыми наборами передаваемых параметров? Как это исправить, в таком случае, я тоже не понимаю. :(
  • ,

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

level15.lesson02.task05 Задача засчитана, но не могу осмыслить то что она выводит

Задача засчитана, но не могу осмыслить то что она выводит:
[Большой не содержит кости, Указательный не содержит кости, Средний не содержит кости, Безымянный содержит кости, Мизинец не содержит кости]
[Рука содержит кости, Нога содержит кости, Голова содержит кости, Тело содержит кости]
Yes

Как это так «Большой не содержит кости, Указательный не содержит кости»- у меня вроде там кости есть.:) Так надо? или я что-то неправильно сделал?
  • ,

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;
    }
}
  • ,

level18.lesson03.task05 не проходит тестирование

Помогите пожалуйста с задачей. Пробовал разные решения, предлагаемые в комментариях к этой задаче, но всё тщетно. Сейчас мой код выглядит так:

package com.javarush.test.level18.lesson03.task05;
/* Сортировка байт
Ввести с консоли имя файла
Считать все байты из файла.
Не учитывая повторений - отсортировать их по байт-коду в возрастающем порядке.
Вывести на экран
Закрыть поток ввода-вывода

Пример байт входного файла
44 83 44

Пример вывода
44 83
*/
import java.util.*;
import java.io.*;

public class Solution {

    public static void main(String[] args) throws IOException {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String fileName = reader.readLine();
        FileInputStream in = new FileInputStream(fileName);

        TreeSet<Integer> set = new TreeSet<Integer>();
        while (in.available() > 0) {
            set.add(in.read());
        }

        String result = "";
        for (int n : set) {
            result = result + n + " ";
        }

        System.out.print(result.trim());
        reader.close();
        in.close();
    }
}


Тестирование не проходит. В чём ошибка?
  • ,

level06 lesson08 task05 конкатенация строк

/* Класс StringHelper
Cделать класс StringHelper, у которого будут 2 статических метода:
String multiply(String s, int count) – возвращает строку повторенную count раз.
String multiply(String s) – возвращает строку повторенную 5 раз.
Пример:
Амиго -> АмигоАмигоАмигоАмигоАмиго
*/

Вот мой код

public class StringHelper
{
public static String multiply(String s)
{
String result = "";
for(int i = 1; i <= 5; i++) {
result+=s;
}
return result;
}

public static String multiply(String s, int count)
{
String result = "";
for(int i = 1; i <= count; i++){
result += s;
}
return result;
}
}

Все крайне просто, проверку проходит, если использовать конкатенацию строк. Но т.к. ее приходится использовать в цикле, при больших count будет выделятся слишком много памяти. В одном из предлагаемых в конце лекций источников доп. лит-ры было написано «НИКОГДА не используйте конкатенацию строк» так вот мой вопрос…
Как реализовать эту задачу без конкатенации(сложения) строк?
  • ,

level06 lesson08 task05 конкатенация строк

/* Класс StringHelper
Cделать класс StringHelper, у которого будут 2 статических метода:
String multiply(String s, int count) – возвращает строку повторенную count раз.
String multiply(String s) – возвращает строку повторенную 5 раз.
Пример:
Амиго -> АмигоАмигоАмигоАмигоАмиго
*/

Вот мой код

public class StringHelper
{
public static String multiply(String s)
{
String result = "";
for(int i = 1; i <= 5; i++) {
result+=s;
}
return result;
}

public static String multiply(String s, int count)
{
String result = "";
for(int i = 1; i <= count; i++){
result += s;
}
return result;
}
}

Все крайне просто, проверку проходит, если использовать конкатенацию строк. Но т.к. ее приходится использовать в цикле, при больших count будет выделятся слишком много памяти. В одном из предлагаемых в конце лекций источников доп. лит-ры было написано «НИКОГДА не используйте конкатенацию строк» так вот мой вопрос…
Как реализовать эту задачу без конкатенации(сложения) строк?

level05.lesson07.task05

Здравствуйте всем!


Мучает вот такой вопрос:

Ä//- создаём копию другого прямоугольника (он и передаётся в параметрах)Ä — что бы это значило?


...
private String r4 = "Rectangle 4: ";
    public void initialize(String r4)
    {
        this.left = left;
        this.top = top;
        this.width = width;
        this.height = height; 
    }
...


Очень непонятна, вот эта часть строки, — «public void initialize(String r4);» —
помогите понять пожалуйста!


package com.javarush.test.level05.lesson07.task05;

/* Создать класс прямоугольник (Rectangle)
Создать класс прямоугольник (Rectangle). Его данными будут top, left, width, height (левая координата, верхняя, ширина и высота). 
Создать для него как можно больше методов initialize(…)
Примеры:
-	заданы 4 параметра: left, top, width, height
-	ширина/высота не задана (оба равны 0)
-	высота не задана (равно ширине) создаём квадрат
-	создаём копию другого прямоугольника (он и передаётся в параметрах)
*/

public class Rectangle
{
    private int top, left, width, height;    
    
    //-	заданы 4 параметра: left, top, width, height
    private String r1 = "Rectangle 1: ";
    public void initialize(int left, int top, int width, int height)
    {
        this.left = left;
        this.top = top;
        this.width = width;
        this.height = height;
    }
    
    //-	ширина/высота не задана (оба равны 0)
    private String r2 = "Rectangle 2: ";
    public void initialize(int left, int top)
    {
        this.left = left;
        this.top = top;
    }
    
    //-	высота не задана (равно ширине) создаём квадрат
    private String r3 = "Reactangle 3: ";
    public void initialize(int left, int top, int width)
    {
        this.left = left;
        this.top = top;
        this.width = width;
    }
    
    //-	создаём копию другого прямоугольника (он и передаётся в параметрах)
    private String r4 = "Rectangle 4: ";
    public void initialize(String r4)
    {
        this.left = left;
        this.top = top;
        this.width = width;
        this.height = height; 
    }
}



Заранее огромное спасибо!

level09.lesson02.task05

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

public class Solution
{
public static int getStackTraceDeep()
{
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
return stackTraceElement.length;
}
}

Второй способ, которым решил:

public class Solution
{
public static int getStackTraceDeep()
{
StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
int count =0;
for (StackTraceElement element: stackTraceElement){
count++;
}
return count;
}
}

Ни один не проходит. Не могу понять в чем ошибка?