集合第二发Set接口
来源:互联网 发布:java jdk 1.7 中文 编辑:程序博客网 时间:2024/05/18 00:48
Set接口
Set接口不允许重复项,用的都是collection的方法,没有引入新方法。
我们主要用的set的实现类是HashSet和TreeSet(用来排序的)。
Set一定要采用迭代器(Iterator),添加对象就会去调对象的hashCode方法,所以被添加的对象中一定要写hashCode方法。
通过一个演示代码来理解Set:
主类:
package cn.hncu.set;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class SetDemo {public static void main(String[] args) {Set set=new HashSet();Person p1=new Person("01", "张三", 20);Person p2=new Person("02", "李四", 21);Person p3=new Person("03", "王五", 22);Person p4=new Person("04", "mis", 17);set.add(p1);set.add(p2);set.add(p3);set.add(2.14);set.add(new Integer(50));set.remove(p2);Object[] objs=set.toArray();set.clear();for (int i = 0; i < objs.length; i++) {if(objs[i].equals(p3)){objs[i]=p4;}set.add(objs[i]);}Iterator it=set.iterator();while(it.hasNext()){Object obj=it.next();if(obj instanceof String){System.out.println("string:"+obj);}elseif(obj instanceof Person){System.out.println("Person:"+obj);}elseif(obj instanceof Integer){System.out.println("Integer:"+obj);}elseif(obj instanceof Double){System.out.println("Double:"+obj);}}}}Person类:
package cn.hncu.set;public class Person {private String Sno;private String name;private int age;public Person(String sno, String name, int age) {super();Sno = sno;this.name = name;this.age = age;}public String getSno() {return Sno;}public void setSno(String sno) {Sno = sno;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [Sno=" + Sno + ", name=" + name + ", age=" + age + "]";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((Sno == null) ? 0 : Sno.hashCode());result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (Sno == null) {if (other.Sno != null)return false;} else if (!Sno.equals(other.Sno))return false;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}
0 0
- 集合第二发Set接口
- 集合框架-Set接口
- 集合:接口Set
- java集合-Set接口
- 集合第三发List接口
- 集合第四发Map接口
- Set接口(Set接口简介、HashSet集合、TreeSet集合 )
- Set接口下的集合
- 集合框架之Set接口
- 1004--Java集合--Set 接口
- 《JAVA集合中的Set接口》
- collection集合接口子类---set接口
- 集合Collection接口下Set接口List接口
- set、map集合list接口实例
- 国际化,枚举,集合框架,set接口
- java中的集合之Set接口(三)
- 集合框架Set接口之hashset
- 集合框架二(Set接口)
- nyoj999 师傅又被妖怪抓走了 (预处理+bfs+状态压缩)
- 51nod1428 活动安排问题
- smarty模板引擎_6-Smarty的内置函数
- valgrind
- Hibernate的findByExample莫名加入了值为空的的属性做查询条件
- 集合第二发Set接口
- Java中将JSON格式的数据转换成对应的Bean、Map、List数据
- Intents and Intent Filters --2.1
- Android APK反编译
- 关于音频PCM数据2字节(16位)byte与64位double之间的转换
- UITabBarController 根视图控制器
- Java String常见面试题汇总
- android 中显示的问题
- MFC中POSITION类详解