set and equals
От: ENP  
Дата: 14.03.08 12:01
Оценка:
Здравствуйте!

В javadoc читаю:

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2)


Делаю:

public class SetTest {
    private static class File {
        public boolean equals(Object o) {
            return true;
        }
    }    
    public static void main(String[] args) {
        Set<File> files = new HashSet<File>();
        File f1 = new File();
        File f2 = new File();
        System.out.println(f1.equals(f2));
        System.out.println(f2.equals(f1));
        System.out.println(files.add(f1));
        System.out.println(files.add(f2));
        System.out.println(files.size());
    }
}


И почему в files лежат f1 и f2, а не только f1?
Re: set and equals
От: kmet.kr  
Дата: 14.03.08 12:09
Оценка: +2
потому что на пару с equals нужно перекрывать hashCode
Re: set and equals
От: Blazkowicz Россия  
Дата: 14.03.08 12:16
Оценка:
Здравствуйте, ENP, Вы писали:

ENP>В javadoc читаю:

ENP>И почему в files лежат f1 и f2, а не только f1?
Почитай для начала JavaDoc для класса Object. И разберись какое к этому всему имеет метод hashCode()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.