答:不需要,因为ArrayList存储的数据都是Object类,Object是所有数据类型的父类,所以不需要考虑。
答:因为使用private声明,说明该方法只对同包的类和继承该类的子孙类可见。不用public作声明,是因为没有必要对外部可见。rangeCheck方法用于判断是否超出容量范围,无返回值。
答:1、存储位置的确定:当集合中需要添加一个元素时,HashSet会先调用hashCode()方法得到该元素的哈希值,根据该值确定决定该对象在表中应存放的位置。如果表中已有其他元素,则调用equals()方法与数组中已有的元素进行比较。若比较的结果为false,则将对象插入数组中;若比较结果为真,则用新值替换旧值。
2、调用的方法:equals()方法和hashCode()方法
答:时间复杂度为:O(1),因为HashSet是由哈希表来实现的,所以在添加元素时不需要重新遍历。
答:答:使用 比 更为简单。
ArrayListIntegerStack是用ArrayList来实现栈,用它来实现的栈不需要考虑栈满的情况,因为ArrayList本身是可以自动扩容的。而ArrayIntegerStack是用数组来实现栈,需要考虑栈满的情况。
答:在3.1中表现的是:方法名可以相同(都是ArrayIntegerStack),而且都继承了IntegerStack接口,但是方法内的具体实现不一样;所以接口的好处体现在:接入同一个接口,完成同一功能,不考虑其具体的实现方法。
答:因为题目要求最后按照字母顺序输出,所以需要排序后输出,我们知道TreeSet具有自动排序功能,因此这题应该选用TreeSet进行定义更为合适。