读书人

黑马软件工程师_类集框架之Set、HashS

发布时间: 2012-10-08 19:54:56 作者: rapoo

黑马程序员_类集框架之Set、HashSet、TreeSet、SortedSet

---------------------- android培训、java培训、期待与您交流! ----------------------

?

?

?????? 1.Set接口是Collection接口的子接口,但与Collection接口有所区别,即Set接口规定不能加入重复的值。从Api中可发现Set接口中的方法与Collection接口中的方法一致,并没有对Collection接口中的方法进行扩展。

???????? Set接口中没有定义像List接口中get(int index)这样的方法,所以不能从后往前输出,只能从前向后进行输出。

??????

???????2.HashSet类实现了Set接口,其特点也是不能够存放重复的值,并且里面元素的存放是无序的,写一个简单的例子:

???????

package heima.hashset.test;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class HashSetTest {public static void main(String[] args) {Set<String> set = new HashSet<String>();set.add("A");set.add("B");set.add("B");set.add("C");set.add("D");set.add("E");Iterator<String> iter = set.iterator();while (iter.hasNext()) {System.out.print(iter.next() + "\t");}}}

?? 输出结果:D?E?A?B?C

???

??????? 从输出结果可发现重复的元素是保留了一个,而向集合中添加元素的顺序并?

??????? 不是集合中保存元素的顺序,即可说明HashSet类中保存的元素是无序的。

?

??????? 3.SortedSet接口主要是为了给实现它的类进行排序,SortedSet接口是Set接口的一个子接口其定义如下:

public interface SortedSet<E>
extends Set<E>

???????

???????4.TreeSet类定义如下:

        public class TreeSet<E>
extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable

?

??????????? 而NavigableSet接口的定义如下:?

?

          public interface NavigableSet<E>
extends SortedSet<E>

??????????????? 从NavigableSet接口的定义发现其是SortedSet接口的子接口,即说明

?????????? TreeSet类是一个排序类。写一个简单的列子验证其元素是可排序的:

?

package heima.treeset.test;import java.util.Iterator;import java.util.Set;import java.util.TreeSet;public class TreeSetTest {public static void main(String[] args) {Set<String> set = new TreeSet<String>();set.add("B");set.add("D");set.add("E");set.add("A");set.add("C");Iterator<String> iter = set.iterator();while (iter.hasNext()) {System.out.print(iter.next() + "\t");}}}

?

??????????? 输出结果:A?B?C?D?E?

?

?

?

---------------------- android培训、java培训、期待与您交流! ----------------------

?

详细请查看:http://edu.csdn.net/heima


读书人网 >编程

热点推荐