JAVA 第八周学习总结

20175308 2018-2019-2 《Java程序设计》第八周学习总结

教材学习内容总结

泛型

  • 泛型的主要目的是可以建立具有类型安全的集合框架(如链表、散列映射等数据结构
  • 通过class 名称<泛型列表>来声明一个类,这样声明的类被称作泛型类。
  • 泛型类最重要的优点就是:在使用这些泛型类建立数据结构时,不必进行强制类型转换,即不要求进行运行时的类型检查

链表

  • 链表的使用条件:需要动态地减少或增加数据项时。
  • 链表的构成:由若干被称作结点的对象组成的一种数据结构,每个结点含有上一个结点的引用和下一个结点的引用
  • 使用LinkedList<E> 泛型类声明创建链表时必须指定E的具体类型
  • 链表是自动🔗的,不用我们操作
  • 迭代器:链表的存储结构不是顺序结构,因此链表采用遍历自身的方法要慢于使用迭代器的方法。可以使用iterator()方法获得一个Iterator对象,该对象就是当前链表的迭代器。
常用方法:
  • public boolean add<E element>向链表的指定位置添加一个新的结点,该结点中的数据是参数element指定的数据
  • public void add(int index, E element)向链表的指定位置添加一个新的结点,该结点中的数据是参数element指定的数据
  • public void clear()删除链表的所有结点,使当前链表成为空链表
  • public E remove(int index)删除指定位置上的结点
  • public boolean remove(E element)删除首次出现含有数据element的结点
  • public E get(int index)得到链表中指定位置处结点中的数据
  • public int indexOf(E element)返回含有数据element的结点在链表中首次出现的位置,如果链表中无此结点则返回-1
  • public int lastIndexOf(E element)返回含有数据element的结点在链表中最后出现的位置,如果链表中无此结点则返回-1
  • public E set(int index,E element)将当前链表index位置结点中的数据替换为参数element指定的数据,并返回被替换的数据
  • public int size()返回链表的长度,即结点的个数
  • public boolean contains(Object element)判断链表中是否有结点含有数据element。
  • public void addFirst(E element)向链表的头添加新结点,该结点中的数据是参数element指定的数据
  • public void addLast(E element)向链表的末尾添加新结点,该结点中的数据是参数element指定的数据
  • public E getFirst()得到链表中第一个结点中的数据
  • public E getLast()得到链表中最后一个结点中的数据
  • public E removeFirst()删除第一个结点,并返回这个结点中的数据
  • public E removeLast()删除最后一个结点,并返回这个结点中的数据
  • public Object clone()得到当前链表的一个克隆链表,该克隆链表中结点数据的改变不会影响到当前链表中结点的数据,反之亦然

堆栈

  • 先进后出(First In Last Out)
  • 后进先出(Last In First Out)
  • 结对项目里已经用了很久了。。。

散列映射

  • HashMap<K,V>泛型类创建的对象称作散列映射,例如:HashMap<String,Student> hashtable = HashSet<String,Student>();
常用方法:
  • public void clear清空散列映射
  • public Object clone()返回当前散列映射的一个克隆
  • public V get(Object key)返回散列映射中使用key做键的键/值对中的值
  • public V remove(Object key)删除散列映射中键为参数指定的键/值对,并返回键对应的值。
  • public int size()返回散列映射大小,即散列映射中键/值对的数目。

树集

  • TreeSet类是实现Set接口的类。大部分方法都是借口方法的实现。
  • 树集采用树结构存储数据,树结点中的数据回按照数据的“大小”依次排列。下一层的都比上一层的小
  • 声明:TreeSet<String> mytree=new TreeSet<String>();
常用方法:
  • public boolean add(E o)向树集添加结点,结点中的数据由参数指定,添加成功返回true,否则返回false
  • public void clear()删除树集中的所有结点
  • public void contains(Object o)如果树集中有包含参数指定的对象,则返回true,否则返回false
  • public E first()返回树集中的第一个结点中的数据
  • public E last()返回树集中的最后一个结点中的数据
  • public boolean isEmpty()判断是否是空树集,如果树集不含任何结点,则返回true
  • public boolean remove(Object o)删除树集中的存储参数指定的对象的最小结点,删除成功返回true,否则返回false
  • public int size()返回树集中结点的数目

教材学习中的问题和解决过程

  • 教材中 int binarySearch(List<T>list,T key,CompareTo<T> c)方法中,CompareTo <T> c的作用是什么,在示例代码中填null
    解决:经过查询API文档,参数c作为排序列表的比较器,null代表使用元素的自然顺序

  • 教材代码中,类似

for(int i=10;i<50;i=i+10)
list.add(new Integer(i));

IDEA均在new Integer(i)处报错,以致自动装箱与拆箱也不能用
解决:未能解决。

代码托管

感悟

由于中间跳过了一些章节的学习,先学习15章。所以在15章的窗口操作很多都不是很明白。但是学习中,看起来永远要比实际操作要难,只要认真学习,踏实记忆,就没有征服不了的高峰。

posted @ 2019-04-21 20:29  20175308杨元  阅读(125)  评论(0编辑  收藏  举报