Я работаю над hashmaps. Он не допускает дубликатов, но в этой программе он добавил три элемента в соответствии со мной, он должен добавить только один bcz-отдых.HashSet добавление дубликатов
import java.util.*;
public class WrappedString {
private String s;
public WrappedString(String s) { this.s = s; }
public static void main(String[] args) {
HashSet<Object> hs = new HashSet<Object>();
WrappedString ws1 = new WrappedString("aardvark");
WrappedString ws2 = new WrappedString("aardvark");
String s1 = new String("aardvark");
String s2 = new String("aardvark");
System.out.println(hs.add(ws1)); //true
System.out.println(hs.add(ws2)); ////true
System.out.println(hs.add(s1)); //true
System.out.println(hs.add(s2)); //false
System.out.println(hs.size());//3 } }
Что это за класс 'WrappedString'? HashSet зависит от метода 'equals()', чтобы избежать дублирования. Если ваш класс не переопределяет это, тогда вы можете получить непредсказуемые результаты – zencv
@zencv нет необходимости переопределять метод equals(), поскольку он уже доступен для всех классов, потому что этот метод определен в классе Object() –
@DishaJain Exactly Object реализует equals и определяет, что эти два объекта не равны. – Paparazzi