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(List list)按洗牌算法重新随机排列
    * static void rotate(List list ,int distance),旋转链表中数据,distance取正值,向右旋转list中数据(第一个值移到第二位,最后一位移到第一位),取负值向左旋转list中数据。
    * public static void reverse(List list),翻转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 泛型与集合框架

参考资料

猜你喜欢

转载自www.cnblogs.com/ysz-123/p/10746977.html