【OCJP】 第2题---Set中subSet()方法的运用
2015-10-10 09:43
302 查看
题目:
本题主要考查:
1、TreeSet 自然排序
2、subSet()方法的运用
先来看下subSet():
返回一个视图的一部分从fromElement到toElement这个集合的元素。如果fromElement 和toElement是相等的,返回的集合是空的,除非fromInclusive和toInclusive都是true。返回的集合是由这个集合backed的,所以返回的变化反映在这个集合,反之亦然。返回的集合支持支持原集合所有可选的设置操作。
返回的集合将抛出IllegalArgumentException,当试图插入一个元素以外的范围。
理论说完了,现在实践一下。
先把题目回顾一遍,有两个TreeSet集合s 和 subs,s里边有[606, 608, 610, 612],subs 是用 subSet()得来的,[608, 610];然后再向 s 中添加一个629,因不是往subs中添加,故不会报IllegalArgumentException。最终 s 就是 [608, 610, 612, 629], subs就是 [608, 610]。
下面我们稍稍修改下,
因为都是true,所以subs中608和610都有。
再改下。
这个就是If
再改下:
这个就像映射一样,反之亦然,下图也是这个原理。
下边这个直接向subs中添加超出了它范围的数字,报IllegalArgumentException异常。原题目是向 s 中添加是没有问题的。
QUESTION 4 Given: 12. import java.util.*; 13. public class Explorer2 { 14. public static void main(String[] args) { 15. TreeSet<Integer> s = new TreeSet<Integer>(); 16. TreeSet<Integer> subs = new TreeSet<Integer>(); 17. for(int i = 606; i < 613; i++) 18. if(i%2 == 0) s.add(i); 19. subs = (TreeSet)s.subSet(608, true, 611, true); 20. s.add(629); 21. System.out.println(s + " " + subs); 22. } 23. } What is the result? A. Compilation fails. B. An exception is thrown at runtime. C. [608, 610, 612, 629] [608, 610] D. [608, 610, 612, 629] [608, 610, 629] E. [606, 608, 610, 612, 629] [608, 610] F. [606, 608, 610, 612, 629] [608, 610, 629] Answer: E
本题主要考查:
1、TreeSet 自然排序
2、subSet()方法的运用
先来看下subSet():
NavigableSet<Integer> java.util.TreeSet.subSet(Integer fromElement, boolean fromInclusive, Integer toElement, boolean toInclusive) Returns a view of the portion of this set whose elements range from fromElement to toElement. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports. The returned set will throw an IllegalArgumentException on an attempt to insert an element outside its range.
返回一个视图的一部分从fromElement到toElement这个集合的元素。如果fromElement 和toElement是相等的,返回的集合是空的,除非fromInclusive和toInclusive都是true。返回的集合是由这个集合backed的,所以返回的变化反映在这个集合,反之亦然。返回的集合支持支持原集合所有可选的设置操作。
返回的集合将抛出IllegalArgumentException,当试图插入一个元素以外的范围。
理论说完了,现在实践一下。
先把题目回顾一遍,有两个TreeSet集合s 和 subs,s里边有[606, 608, 610, 612],subs 是用 subSet()得来的,[608, 610];然后再向 s 中添加一个629,因不是往subs中添加,故不会报IllegalArgumentException。最终 s 就是 [608, 610, 612, 629], subs就是 [608, 610]。
下面我们稍稍修改下,
因为都是true,所以subs中608和610都有。
再改下。
这个就是If
fromElementand
toElementare equal, the returned set is empty unless
fromInclusiveand
toInclusiveare both true.
再改下:
这个就像映射一样,反之亦然,下图也是这个原理。
下边这个直接向subs中添加超出了它范围的数字,报IllegalArgumentException异常。原题目是向 s 中添加是没有问题的。
相关文章推荐
- 面试题:GPS定位一个点,至少需要几个卫星?
- Java并发编程:阻塞队列
- ie8 table td拆分宽度不适应问题
- HTML相对路径和绝对路径
- [置顶] 【实验-视频过程】ORACLE EXPDP IMPDP导入导出同EXP IMP命令详细对比
- 开源项目SlidingMenu的使用
- java int 乘法溢出问题
- MySQL Proxy使用
- Code Forces 584 B. Kolya and Tanya(快速幂)
- 第 5章 eval
- 免费开源的堡垒机
- 浮点数等值比较
- Ubuntu 安装AndroidStudio过程详解
- [LeetCode-92] Reverse Linked List II(反转指定区间链表)
- 20150923构造器的认识
- 第七章——函数
- 《The C Programming Language》阅读笔记1
- Java基础知识强化之集合框架笔记63:Map集合之HashMap嵌套ArrayList
- springmvc简介
- Android 众多的布局属性详解