HashSetの説明と、どうすればコードが動くのか教えて欲しいです。
参考書で、HashCodeメソッドを学習していた時に、
・最初にハッシュ値でオブジェクトを比較する
・ハッシュ値が等しい場合に限り、equalsメソッドで厳密な判定を行う
という流れでオブジェクトを比較しないと、バグを生む可能性があると書いてあり、バグの例を出すコードが記載されていました。
しかし、それを確認するためにコードを書いて実行しようとしたのですが、うまくいきません。
HashSetの説明もなかったので、調べてみると(なんとなく理解できた点??)
・値の集合を扱うクラスで、同じ値を1つのみ持つことができるもの・・・?
など様々なサイトなどを参考にして調べたのですが・・・私の理解力が著しく無いのか、理解できるようなものはなく、かなり困惑しています。
以下のコードを実行して、2と表示される結果を確認したいのですが、どうすれば実行できますか?
もし宜しければ、HashSetの説明もお願いします。
発生している問題・エラーメッセージ
Set cannot be resolved to a type HashSet cannot be resolved to a type
該当のソースコード
java
1public class Employee { 2 3 private int employeeNo; 4 private String employeeName; 5 6 public Employee(int employeeNo, String employeeName) { 7 this.employeeNo = employeeNo; 8 this.employeeName = employeeName; 9 } 10 //getter と setter は省略 とかかれている。 11 12 13 14 15 @Override 16 public boolean equals(Object obj) { 17 if (this == obj) { 18 return true; 19 } 20 if (obj == null) { 21 return false; 22 } 23 24 if (getClass() != obj.getClass()) { 25 return false; 26 } 27 28 Employee other = (Employee)obj; 29 if (this.employeeNo != other.employeeNo) { 30 return false; 31 } 32 if (employeeName == null) { 33 if (this.employeeName != null) { 34 return false; 35 } 36 37 } 38 else if (!employeeName.equals(other.employeeName)) { 39 return false; 40 } 41 42 return true; 43 44 45 } 46 47} 48
java
1 Employee employee1 = new Employee(1 , "Mr.Yamada"); 2 Employee employee2 = new Employee(1 , "Mr.Yamada"); 3 4 Set<Employee> employees = new HashSet<>(); 5 employees.add(employee1); 6 employees.add(employee2); 7 8 System.out.println(employees.size());
試したこと
java
1 2public class Eaction { 3 4 public static void main(String...arge) { 5 6 Employee employee1 = new Employee(1 , "Mr.Yamada"); 7 Employee employee2 = new Employee(1 , "Mr.Yamada"); 8 9 Set<Employee> employees = new HashSet<>(); 10 employees.add(employee1); 11 employees.add(employee2); 12 13 System.out.println(employees.size()); 14 } 15} 16
補足情報(FW/ツールのバージョンなど)
eclipse使用してます。
回答1件
あなたの回答
tips
プレビュー