20175234 2018-2019-2 《Java程序设计》第八周学习总结
20175234 2018-2019-2 《Java程序设计》第八周学习总结
目录
教材学习内容总结
15.1泛型
- 泛型类声明 Class 名称<泛型列表>,泛型列表给出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。
- 使用泛型类声明变量,与普通类相比,多了一对“<>”。Java泛型的主要目的:可以建立具有类型安全的数据结构,如列表散列表等。在使用这些泛类建立的数据结构时,不需要强制类型转换,不要求进行运行时类型检查。
15.2链表
- LinkedList泛型类创建的对象以链表结构存储数据,需要指明E的具体类型,如 LinkedList<String>mylist=new LinkedList<String>();创建了一个对象必须是String类的双向链表。
- 用add添加结点,例如
mylist.add(“How”);
mylist.add(“Are”);
…
- 常用方法
  


- 
遍历链表:可以用LinkedList类中的get(int index)返回当前链表第index个结点中的对象,也可以使用迭代器遍历集合(找到集合中一个对象的同时,耶得到遍历的后继对象的引用)。由下图可知,迭代器遍历链表,更加快速。 
  
- 
排序与查找:Collections类提供了用于排序和查找的类方法如下: public static sort(List<E> list)按升序列,int binarySearch (List<T>list,T key,CompareTo<t> c)折半查找,存在返回引索位置(引索位置从0开始),不存在返回-1。
- 
洗牌与旋转 
 * public static void shuffle(Listlist)按洗牌算法重新随机排列 
 * static void rotate(Listlist ,int distance),旋转链表中数据,distance取正值,向右旋转list中数据(第一个值移到第二位,最后一位移到第一位),取负值向左旋转list中数据。 
 * public static void reverse(Listlist),翻转list中数据。 
15.3堆栈
- 创建堆栈对象java.util包 Stack<E>
- 压栈操作public E push(E item )
- 弹栈操作public E pop();
- 判断是否有数据public boolean empty();有数据返回false,无返回true。
- 获取堆栈顶端数据,但不删除数据public E peek();
- 获取数据在堆栈中的位置,最顶端为1,向下依次累加,无则返回-1public int search(Object data);
15.4散列映射
- 用HashMap<K,V>泛型类创建的对象称作散列映射。
- 常用方法(p452)
 * public void clear()
 * public Object clone()
 * public Boolean containsKey(Object key)
 * public Boolean containsValue(Object value)
 ……
- 遍历散列映射
- 基于散列映射的查询
15.5树集
- TreeSet创建树集。 
- 树集用add方法添加节点,节点会按其存放的数据的“大小”顺序一层一层地依次排列,在同一层中的节点从左到右按“大小”顺序递增排列,下一层的都比上一层的小。
- TreeSet类的常用方法
- public boolean add(E o) 向树集添加加节点。
- public void clear() 删除树集中的所有节点。
- public void contains(Object o) 如果树集中有包含参数指定的对象,该方法返回true,否则返回false 。
- public E first() 返回树集中的第一个节点中的数据(最小的节点)。
- public E last() 返回最后一个节点中的数据(最大的节点)。
- public isEmpty() 判断是否是空树集,如果树集不含任何节点,该方法返回true 。
- public boolean remove(Object o) 删除树集中的存储参数指定的对象的最小节点。
- public int size() 返回树集中节点的数目。
15.6树映射
- TreeMap<K,V>类实现了Map<K,V>接口,称TreeMap<K,V>对象为树映射。
- public V put(K key,V value); 添加节点。
15.7自动装箱与拆箱
- JDK1.5新增的基本类型数据和相应的对象之间相互自动转换的功能,称作基本数据类型的自动装箱与拆箱(Autoboxing and Auto-Unboxing of Primitive Types)。
教材学习中的问题和解决过程
- 
问题1:  
- 
问题1在cmd中尝试运行  
- 
问题2:从上图可见,出现编码JBK的不可映射字符问题 
- 
问题2解决方案:编码JBK的不可映射字符 
 使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java 另一种思路 
  
代码托管

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 51/51 | 1/1 | 12/20 | Java的重要起步 | 
| 第二周 | 460/511 | 2/3 | 30/32 | Java的简单语句学习 | 
| 第三周 | 803/1314 | 2/5 | 25/57 | Java的基础学习 | 
| 第四周 | 485/1699 | 1/6 | 20/77 | Java的子类与继承 | 
| 第五周 | 393/2092 | 1/7 | 20/97 | Java的接口与实现 | 
| 第六周 | 156/2321 | 2/9 | 18/115 | 内部类和异常类、输入输出流 | 
| 第七周 | 1225/3546 | 2/11 | 20/135 | 常用类及方法 | 
| 第八周 | 487/4032 | 2/13 | 20/155 | 泛型与集合框架 | 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号