文档详情

JAVA深入学习——Set集合JAVA深入学习——Set集合.ppt

发布:2017-12-14约2.39千字共14页下载文档
文本预览下载声明
集合 - Set Set的功能 和List一样,可以看成可变长度的数组的接口 它有很多实现类 但是,Set是一种不能包含有重复元素的集合,即对于满足e1.equals(e2)条件的e1与e2对象元素,不能同时存在于同一个Set集合里 因此,为Set集合里的元素的实现类实现一个有效的equals(Object)方法 Set的实现类 Set的实现类中,我们推荐: HashSet TreeSet 二者接口一致,所以操作方式相同 Set – 增加元素 import java.util.HashSet; public class Parent { public static void main( String [] args ) { HashSet s = new HashSet(); s.add( Eric ); } } Set – 删除元素 import java.util.HashSet; public class Parent { public static void main( String [] args ) { HashSet s = new HashSet(); s.add( Eric ); s.remove( Eric ); } } Set – 修改元素 Set没有修改方法,怎么办? 先删除 再插入 Set – 查询元素 Set没有查询元素的方法,建议从Set的第一个元素一直遍历到要查询的那个元素,详细方式请参考后面“Set – 遍历” Set – 遍历 public class Parent { public static void main( String [] args ) { HashSet s = new HashSet(); s.add( Eric ); s.add( Janet ); //int len = s.size(); Iterator itr = s.iterator(); while ( true ) { boolean b = itr.hasNext(); if ( false == b ) { break; } String str = ( String )itr.next(); System.out.println( str ); } } } TreeSet 具有元素自动排序功能 public class Parent { public static void main( String [] args ) { Set s = new TreeSet(); s.add( 2 ); s.add( 3 ); s.add( 1 ); int len = s.size(); Iterator itr = s.iterator(); while ( true ) { boolean b = itr.hasNext(); if ( false == b ) { break; } String str = ( String )itr.next(); System.out.println( str ); } } } TreeSet对自定义类的排序 查看元素遍历出来的顺序 思考: 如果存放到TreeSet中的元素不是String,而是我们自己写的Parent类,那么,TreeSet根据什么原则来为我们存放进去的多个Parent类的实例排序呢? TreeSet对自定义类的排序 那么,就要求这个类要实现Comparable接口 并且实现这个接口中提供的compareTo排序方法 然后,TreeSet就能自动调用这个方法为我们排序了 TreeSet对自定义类的排序 public class Parent implements Comparable { public int age; public int compareTo(Object obj) { Parent p = ( Parent )obj; if ( this.age p.age ) { return 1; } else if ( this.age p.age ) { return -1; } else { return 0; } } } TreeSet对自定义类的排序 public static void main( String [] args ) { Parent p1 = new Parent(); p1.age = 1; Parent p2 = new Parent(); p2.age = 2; Parent p3 = new Parent(); p3.age = 3; Set s = new TreeSet(); s.add( p1 ); s.add( p2 ); s.add( p3 ); int len = s.si
显示全部
相似文档