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的结点在链表中首次出现的位置,如果链表中无此结点则返回-1public int lastIndexOf(E element)
返回含有数据element的结点在链表中最后出现的位置,如果链表中无此结点则返回-1public 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,否则返回falsepublic void clear()
删除树集中的所有结点public void contains(Object o)
如果树集中有包含参数指定的对象,则返回true,否则返回falsepublic E first()
返回树集中的第一个结点中的数据public E last()
返回树集中的最后一个结点中的数据public boolean isEmpty()
判断是否是空树集,如果树集不含任何结点,则返回truepublic boolean remove(Object o)
删除树集中的存储参数指定的对象的最小结点,删除成功返回true,否则返回falsepublic 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章的窗口操作很多都不是很明白。但是学习中,看起来永远要比实际操作要难,只要认真学习,踏实记忆,就没有征服不了的高峰。