注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TERONY的博客

Still Achieving.

 
 
 

日志

 
 

sleepless in java & hashset  

2011-06-14 09:28:21|  分类: Profession |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/**
 * 非String/Calendar/Date之外
 * 其它对象在HashSet中的应用需要重写
 * equals和hashCode方法以避免
 * 加入重复对象,另外HashSet并不保证
 * 元素对象存入顺序和取出顺序是一致的
 */
import java.util.*;

public class EmployeeHashSetTest {
 public static void main(String[] args) {
  Set<Employee> set = new HashSet<Employee>();
  set.add(new Employee(1, "杨舒", 3500.00, 25));
  set.add(new Employee(2, "郑浩", 4000.00, 30));
  set.add(new Employee(3, "马鼎盛", 4500.00, 35));
  set.add(new Employee(1, "杨舒", 3500.00, 25));
  for (Employee e : set) {
   System.out.println(e);
  }
 }
}
//Employee类,标准JavaBean实现
class Employee {
 private int id; //编号
 private String name; //姓名
 private double salary; //月薪
 private int age; //出生日期
 
 public Employee() {}
 public Employee(int id, String name, double salary, int age) {
  this.id = id;
  this.name = name;
  this.salary = salary;
  this.age = age;
 }
 //所有属性的getter和setter方法
 public int getId() { return this.id; }
 public void setId(int id) { this.id = id; }
 public String getName() { return this.name; }
 public void setName(String name) { this.name = name; }
 public double getSalary() { return this.salary; }
 public void setSalary(double salary) { this.salary = salary; }
 public int getAge() { return this.age; }
 public void setAge(int age) { this.age = age; }
 @Override //重写equals方法
 public boolean equals(Object obj) {
  if (obj == null) { return false; }
  if (getClass() != obj.getClass()) { return false; }
  final Employee other = (Employee)obj;
  if (this.id != other.id) { return false; }
  if ((this.name == null) ? (other.name  != null) : !this.name.equals(other.name)) { return false; }
  if (this.salary != other.salary) { return false; }
  if (this.age != other.age) {return false; }
  return true;
 }
 @Override //重写hashCode方法
 public int hashCode() {
  int hash = 5;
  hash = 19*hash+this.id;
  hash = 19*hash+(this.name != null ? this.name.hashCode() : 0);
  hash = 19*hash+(int)(Double.doubleToLongBits(this.salary) ^ (Double.doubleToLongBits(this.salary) >>> 32));
  hash = 19*hash+this.age;
  return hash;
 }
 @Override //重写toString()方法
 public String toString() {
  return "[id="+id+",name="+name+",salary="+salary+",age="+age+"]";
 }
 
}

//LinkedHashSet

import java.util.*;

public class LinkedHashSetTest {
 public static void main(String[] args) {
  Set<String> set = new LinkedHashSet<String>();
  set.add("第一个元素");
  set.add("第二个元素");
  set.add("第三个元素");
  set.add("第一个元素");
  for (String str : set) {
   System.out.println(str);
  }
 }
}

//Simple Example

import java.util.*;

public class HashSetTest {
 public static void main(String[] args) {
  Set<String> set = new HashSet<String>();
  set.add("hyy");
  set.add("qhc");
  set.add("qjy");
  set.add("qhc");
  System.out.println("set.size()=" + set.size());
  for (Iterator<String> it = set.iterator(); it.hasNext();) {
   String str = it.next();
   System.out.println(str);
  }
 } 
}

    

  评论这张
 
阅读(22)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017