package com.javarush.task.task08.task0820;
import java.util.HashSet;
import java.util.Set;
import java.util.ArrayList;
/*
Множество всех животных
*/
public class Solution {
public static void main(String[] args) {
Set<Cat> cats = createCats();
Set<Dog> dogs = createDogs();
Set<Object> pets = join(cats, dogs);
printPets(pets);
removeCats(pets, cats);
printPets(pets);
}
public static class Cat{
private String name;
public Cat(String name) { this.name = name; }
}
public static class Dog{
private String name;
public Dog(String name) { this.name = name; }
}
public static Set<Cat> createCats() {
HashSet<Cat> cats = new HashSet<Cat>();
for(int i = 0; i <4; i++) {
cats.add(new Cat("murka"+i));}
//напишите тут ваш код
return cats;
}
public static Set<Dog> createDogs() {
HashSet<Dog> dogs = new HashSet<Dog>();
for(int i = 0; i <3; i++){
dogs.add(new Dog("dog"+i));
}//напишите тут ваш код
return dogs;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
HashSet<Object> join = new HashSet<Object>(); //напишите тут ваш код
join.addAll(cats);
join.addAll(dogs);
return join;
}
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
ArrayList<Object> list = new ArrayList<>();
list.addAll(pets);
for(int i =0; i < list.size(); i++){
for(Cat clist : cats){
if(cats.contains(list.get(i))) { pets.remove(list.get(i));}
}
}
//напишите тут ваш код
}
public static void printPets(Set<Object> pets) {
ArrayList<Object> list = new ArrayList<>();
list.addAll(pets);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}//напишите тут ваш код
}
//напишите тут ваш код
}
Дмитрий Ковтонюк
19 уровень
Подскажите, где ошибка, плз.
Решен
Комментарии (13)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий Ковтонюк
14 мая 2018, 12:29
com/javarush/task/task08/task0820/Solution.java:22: error: cannot find symbol
public static Set<Cat> createCats() {
^
symbol: class Cat
location: class com.javarush.task.task08.task0820.Solution
com/javarush/task/task08/task0820/Solution.java:32: error: cannot find symbol
public static Set<Dog> createDogs() {
^
symbol: class Dog
location: class com.javarush.task.task08.task0820.Solution
com/javarush/task/task08/task0820/Solution.java:40: error: cannot find symbol
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
^
symbol: class Cat
location: class com.javarush.task.task08.task0820.Solution
com/javarush/task/task08/task0820/Solution.java:40: error: cannot find symbol
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
^
symbol: class Dog
location: class com.javarush.task.task08.task0820.Solution
com/javarush/task/task08/task0820/Solution.java:45: error: cannot find symbol
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
^
symbol: class Cat
location: class com.javarush.task.task08.task0820.Solution
0
--------Master
14 мая 2018, 13:01
А где у тебя эти классы созданы?
Внутри класса Solution создать public static классы Cat, Dog.
+1
Дмитрий Ковтонюк
14 мая 2018, 13:43
0
Дмитрий Ковтонюк
14 мая 2018, 13:49
создал классы.
com/javarush/task/task08/task0820/Solution.java:51: error: no suitable method found for addAll(no arguments)
Set<Object> join = new Set<Object>(cats.addAll(), dogs.addAll()); //напишите тут ваш код
^
method java.util.Collection.addAll(java.util.Collection<? extends com.javarush.task.task08.task0820.Solution.Cat>) is not applicable
(actual and formal argument lists differ in length)
method java.util.Set.addAll(java.util.Collection<? extends com.javarush.task.task08.task0820.Solution.Cat>) is not applicable
(actual and formal argument lists differ in length)
com/javarush/task/task08/task0820/Solution.java:51: error: no suitable method found for addAll(no arguments)
Set<Object> join = new Set<Object>(cats.addAll(), dogs.addAll()); //напишите тут ваш код
^
method java.util.Collection.addAll(java.util.Collection<? extends com.javarush.task.task08.task0820.Solution.Dog>) is not applicable
(actual and formal argument lists differ in length)
method java.util.Set.addAll(java.util.Collection<? extends com.javarush.task.task08.task0820.Solution.Dog>) is not applicable
(actual and formal argument lists differ in length)
com/javarush/task/task08/task0820/Solution.java:51: error: java.util.Set is abstract; cannot be instantiated
Set<Object> join = new Set<Object>(cats.addAll(), dogs.addAll()); //напишите тут ваш код
^
com/javarush/task/task08/task0820/Solution.java:56: error: no suitable method found for addAll(no arguments)
ArrayList<Object> list = new ArrayList<>(cats.addAll());
^
0
--------Master
14 мая 2018, 13:54полезный
set.addAll(Collection c) - метод, добавляющий в вызывающее множество (в моем примере - в set) все объекты из передаваемой в виде параметра коллекции. Метода без параметра, т.е. addAll() просто не существует - что такой метод мог бы добавлять? И зачем вообще он у тебя вызывается во всех этих случаях, что он должен добавлять в dogs или cats?
+1
Дмитрий Ковтонюк
14 мая 2018, 14:30
0
Дмитрий Ковтонюк
14 мая 2018, 14:30
com/javarush/task/task08/task0820/Solution.java:65: error: incompatible types: java.lang.Object cannot be converted to java.util.HashSet<java.lang.Object>
for(HashSet<Object> clist : acats){
^
com/javarush/task/task08/task0820/Solution.java:67: error: cannot find symbol
if(list.get(i).contains(acats)) { pets.remove(acats); i--;}
^
symbol: method contains(java.util.HashSet<java.lang.Object>)
location: class java.lang.Object
com/javarush/task/task08/task0820/Solution.java:75: error: incompatible types: java.lang.Object cannot be converted to java.util.HashSet<java.lang.Object>
for (HashSet<Object> blist : set1 ) {
^
0
Дмитрий Ковтонюк
14 мая 2018, 14:46
Сделал, как вы сказали с add.All(). Теперь ошибка указывает на методы remove и print. Я обновил код в постановке задачи сверху.
0
--------Master
14 мая 2018, 14:48полезный
"Для каждого clist - множества объектов, содержащегося в коллекции acats" - т.е. acats - это коллекция множеств (HashSet)?
"Если элемент списка list под индексом i содержит acats, удалить acats из pets". Или все же элемент списка должен содержаться в коллекции, а не коллекция в элементе?
См. выше, set1 - коллекция из HashSet<Object> ?
+1
Дмитрий Ковтонюк
14 мая 2018, 16:18
скомпилировалась первый раз. поменял типы в циклах.
решение обновил в топе.
0
Roman Pryshchepa Java Developer Expert
15 мая 2018, 08:30решение
Избавься от конструкторов.
+2
Дмитрий Ковтонюк
15 мая 2018, 15:18
Создать 2 пустых класса, создать в методах create обьекты и внести их в set?
0
Дмитрий Ковтонюк
15 мая 2018, 15:20
Сделал, но только почему эти классы нужно указывать снизу?
+1