疯狂java讲义第八章课后习题答案

更新时间:2023-07-18 15:46:38 阅读: 评论:0

疯狂java讲义第⼋章课后习题答案
课后习题
1、创建⼀个Set集合,并⽤Set集合保存⽤户通过控制台输⼊的20个字符串。
2、创建⼀个List集合,并随意添加10个元素。然后获取索引为5处的元素;再获取其中某2个元素的索引;再删除索引为3处的元素。
3、给定["…此处请看书上]字符串数组,然后使⽤Map的key来保存数组中的字符串元素,value保存该字符串元素的出现次数,最后统计出各个字符串元素的出现次数。
4、将本章未完成的梭哈游戏补充完整,不断地添加梭哈规则,开发⼀个控制台的梭哈游戏。
⽹上搜了⼀个梭哈的规则,⽐较清晰
书上例⼦练习并说出含义(这样有点太耗费时间了,暂时先放着)
补充习题
1、在集合类⾥直接存储基本数据类型的值试⼀试。书上说不⾏。哦~,是采⽤⾃动装箱放进去的。
import java.util.*;
public class CollectionTest
{
public static void main(String[] args)
{
ArrayList list = new ArrayList();
list.add(4);
list.add('n');
System.out.println(list);
}
}
ArrayList可以不⽤菱形,然后可以放不同类型的类。但是会输出⼀些警告
加上-Xlint:unchecked后
2、练习Collection接⼝⾥的⽅法
包含练习Iterator、Spliterator(不知道这个Spliterator是⼲嘛⽤的
parallelStream()返回⼀个可能同步的流是什么意思?
那个toArray(IntFunction)不知道怎么⽤,居然会报String不能转换成Object的错,⽆法理解
使⽤toArray()⽅法,并查看在有⽆泛型的时候的区别。没区别唉
补充Stream
collect()⽅法不太懂⽤
dropWhile()也不会
2⽉28⽇练习到flatMap
3、练习那些遍历集合的⽅式。
(1)、使⽤Lambda表达式遍历集合
(2)、使⽤Iterator遍历集合元素。尝试在Iterator期间,修改原集合,查看结果。书上的299页,只有在删除集合中的某个特定元素才不会抛出异常是什么意思
(3)、使⽤Lambda表达式遍历Iterator
(4)、使⽤foreach循环遍历集合元素
4、使⽤Predicate操作集合
5、使⽤Stream操作集合
尝试创建流
使⽤流
说出流的有状态⽅法和短路⽅法分别是什么含义,为什么要这么命名,分别包括什么⽅法?
peek⽅法返回的流与原有流包含相同的元素是什么意思?返回⼀样的⼀个stream?
6、使⽤HashSet
7、⾃⼰写⼀个类,equals和hashCode符合Set标准
8、尝试书上的例⼦,就是t加⼊可变对象,然后修改实例变量,看看会怎么样。看看还能不能准确访问
9、练习java⽂档中的HashSet
10、练习java⽂档中的LinkedHashSet
11、说出EnumSet、TreeSet、LinkedHashSet和HashSet的区别和联系,以及各⾃的优缺点,适⽤什么场景?
12、练习java⽂档的TreeSet.
13、对⽐TreeSet和HashSet
14、练习java⽂档的EnumSet
15、练习java⽂档的ArrayList
16、尝试⼀下⽤t改变List集合长度,p318
17、练习java⽂档的ListIterator
18、练习java⽂档的List
19、练习java⽂档的Vector中国农业大学网络教育学院
20、说出ArrayList和Vector的区别和联系
21、说出Arrays.ArrayList和ArrayList的区别和联系
22、练习java⽂档的Queue并测试⼀下remove空队列会怎样。还有其他的⽅法对空队列使⽤看看是报错还是null
23、练习java⽂档的PriorityQueue。
24、说出PriorityQueue和TreeSet的区别和联系
25、练习java⽂档的Deque接⼝,如果⽆法直接使⽤就练习ArrayDeque类。换⼀个更好的说法:练习所有实现Deque接⼝的类,并且对⽐他们之间的不同,说出为什么需要实现这么⼀个类,有什么优势?
Array的意思是基于数组实现?基于数组实现⼜是什么含义?
26、说出Deque和Queue、Deque和Stack的区别和联系
27、将ArrayDequeue当做栈和队列来使⽤,并熟悉它们
28、说出使⽤List集合的建议有什么?(根据原理理解)
为什么会有LinkedHashSet这种形式?⼜是链式结构,⼜是哈希结构?
29、练习Map的实现类,和25题要求⼀致。包括HashMap、Hashtable、LinkedHashMap、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap
30、练习Map.Entry类,为什么要叫Entry这个名字?
31、熟悉p327页遍历Map的⽅式
32、说出HashMap和Hashtable的区别和联系。并且尝试使⽤Collections的⽅法让HashMap变成线程安全的类。
33、探索Collections让集合变成线程安全的机制,是怎么办到的?
山东省高考时间34、练习java⽂档中的Properties,并分别保存进ini和xml⽂件
35、练习java⽂档的InputStream和OutputStream
36、学习红⿊树
37、为什么HashSet中元素的顺序会变?因为只要有空位就可以放⼊,然后垃圾回收机制不停回收会导致原本前⾯是满的,多出了空位,然后把新的元素放到旧元素中,也不排除紧凑内存的影响。可以观察⼀下是不是这样,就是新插⼊的值会跑到旧插⼊的值之前。还要查⼀下javaHash底层的机制是什么。
38、熟悉p337的⽤法8.6.9
39、练习java⽂档操作集合的⼯具类Collections
40、说出Set、List和Map等集合的区别和联系
41、练习java⽂档ArrayUtils⼯具类
42、结合之前⾃⼰写的梭哈和p341页的梭哈,按照作者提⽰将梭哈补充完整。
43、试⼀试⽆序的binarySearch会发⽣什么,
44、说出不可变的集合有什么意义?线程安全的集合我还知道是为了防⽌多线程操作中,数据的不同步,或者错误,或者同时访问造成的数据错误。但是不可变的集合我就不理解了。消极的近义词
45、singletonxxx()不能⽤来包装t吗?为什么?
46、尝试多线程访问线程不安全的集合,然后再包装成线程安全,看看错误还会不会发⽣。
47、集合类的of创建的是不可变类?试⼀下。
形容好学的成语
48、Map.ofEntries()创建的map是不可变的吗?
49、练习Enumeration接⼝
50、练习BitSet接⼝
51、看⼀下Consumer函数式接⼝
52、尝试在迭代的时候,删除集合元素,看看会抛出什么异常。或者添加元素,或者调整元素的位置
53、说出线程安全和线程不安全的含义。并且线程不安全类怎么变成线程安全的类?
54、说出hashCode()和equals()对于Hashxxx的含义以及作⽤是什么?以及为什么要保持equals返回true并且hashcode返回相同?
55、说出Set集合中HashSet、LinkedHashSet、TreeSet和EnumSet的特点,以及适合什么场景,有什么使⽤要求。
56、使⽤TreeSet的⾃然排序和定制排序。
57、p313的TreeSet会对集合中的元素重新索引是什么意思?有什么作⽤。
58、p314显式或隐式分别怎么做?EnumSet内部以位向量的形式存储是什么含义?⽤bit存储?
59、红⿊树是什么原理,怎么实现?
60、p315的HashSet为什么要clear()⼀下
61、p316⽤Collections.synchronizedSortedSet()包装,再⽤synchronized块试⼀下,都使⽤⼀下。然
后为什么Collections为什么提供的⽅法要叫SortedSet?别的不⾏吗?还是提供了别的⽅法?
62、尝试⼀下List.t⽅法,设置超出长度的index。
63、p319的基于数组实现是什么意思?如何确认ArrayList和Vector类的初始容量?
64、关于Queue尝试⼀下他的⽅法在空Queue的时候会怎样?
65、弄清楚常⽤集合的继承或者实现了什么类。
66、PriorityQueue的原理是什么?
67、说出List判断两个对象相等的标准是什么?以及为什么这样?
68、说出ArrayList和Vector的特点以及适⽤场景,以及固定长度的List的特点以及适⽤场景
鸡矢藤69、说出PriorityQueue、ArrayQueue和LinkedList的特点和适⽤场景。
70、也都尝试⼀下Deque接⼝的⽅法在队列为空的情况下的使⽤。
71、说出应该如何选择ArrayList和LinkedList?
72、Map的内部类为什么叫Entry?
73、Map不⽤使⽤Collections包装的⽅法吗?
74、说出HashMap和Hashtable、LinkedHashMap、TreeMap、WeakHashMap、EnumMap的区别和特点。
75、尝试⼀下p337上半部分的说明
76、使⽤TreeMap的⾃然排序和定制排序。
77、p337、的通过hash算法控制集合⼤⼩?什么意思?
78、Collections的synchronizedXxx⽅法内部是怎么实现的?有熊氏
79、Map.ofEntries()是不可变的吗?
要练习java⽂档的类或者接⼝
1、Collections
2、Iterator
柠檬泡酒
3、Predicate
4、Stream
5、Set
6、HashSet
7、LinkedHashSet
8、TreeSet
9、EnumSet
10、List
11、ListIterator
12、ArrayList
13、Vector
出清14、Arrays.ArrayList
15、Queue
16、PriorityQueue
17、Deque
18、ArrayDeque
19、Map
20、HashMap
21、Hashtable
22、LinkedHashMap
23、Properties
24、SortMap
25、TreeMap
26、WeakHashMap
27、IdentityHashMap
28、EnumMap
29、Enumeration

本文发布于:2023-07-18 15:46:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1103368.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集合   元素   线程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图