标题: Set s = new Set() 是不是对的.为什么啊? [打印本页] 作者: 王虎 时间: 2012-10-11 09:49 标题: Set s = new Set() 是不是对的.为什么啊? 请赐教,最好举一反三作者: 张忠豹 时间: 2012-10-11 09:54 本帖最后由 张忠豹 于 2012-10-11 09:58 编辑
当然不对啊,Set是接口,接口不能直接创建对象……
如果你想要创建Set类型的对象,就应该用它的子类来赋值。
例如:Set s = new HashSet()
在说了,接口里面的方法都是抽象的,如果创建了接口的对象,那么调用接口的方法时,就应该调用接口实现类的方法。
List l = new LinkedList( )跟这差不多
反正在编程里面,现在很流行面向接口编程。因为这种方式非常灵活。作者: 张丽 时间: 2012-10-11 10:09
估计你是想要知道Set在什么时候使用,其实在Map中,其里面存储的是键值对,如果我们要获取里面的所有键,就可以把键用Set集合来存储,这样就可以创建Set集合的子类对象,然后再使用迭代器进行元素的取出,就可以获取到全部的键。Set接口是不能直接创建其对象的,一般是创建它的子类对象。并使用子类对象的方法来操作集合元素的。TreeSet可以使集合中的元素有序,这个有序是指存和取的顺序一致,而HashSet是无序的,其底层用的是HashMap.为什么会出现Set集合呢?其实就是为了保证元素的唯一性,并且需要集合中一次存的是单个元素。作者: 王虎 时间: 2012-10-11 10:49