# **教材学习内容总结
### 本周学习《Java程序设计》第十五章:**
* 泛型:
泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。
泛型类声明:`class 名称<泛型列表>`
泛型类声明对象:类名后多了一对<泛型列表>,必须要用具体的类型替换<>中的泛型
`LinkedList<String> mylist=new LinkedList<String>();`
泛型类中的泛型变量`bottom`只能调用`Object`类中的方法
在使用这些泛型类建立数据结构时,不必进行强制类型转换,即不要求进行运行时的类型检查
* 链表:
`LinkedList`泛型类创建的对象以链表结构存储数据。
`add(E obj)`向链表依次增加节点。
`LinkedList`泛型类实现Lis泛型接口中的一些常用方法
`public boolean add(E element)`向链表末尾添加一个新的节点。
`public void add(int index ,E element)`向链表的指定位置添加一个新的节点。
`public void clear()`删除链表的所有节点,使当前链表成为空链表。
`public E remove(int index)`删除指定位置上的节点。
`public boolean remove(E element)`删除首次出现含有数据elemen的节点。
`public E get(int index)`得到链表中指定位置处节点中的数据。
`LinkedList`泛型类本身新增加的一些常用方法
`public void addFirst(E element)`向链表的头添加新节点。
`public void addLast(E element)`向链表的末尾添加新节点。
`public E getFirst()`得到链表中第一个节点中的数据。
`public E getLast()`得到链表中最后一个节点中的数据。
`public E removeFirst()`删除第一个节点,并返回这个节点中的数据。
* 堆栈
堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作。
先进后出`(First In Last Out)`
后进先出`(Last In First Out)`
使用`Stack`泛型类创建一个堆栈对象
使用`push、pop、empty、peek、search`等方法对栈进行操作或查看栈的状态
`public E push(E item);`实现压栈操作
`public E pop();`实现弹栈操作
`public boolean empty();`判断堆栈是否还有数据
`public E peek();`获取堆栈顶端的数据,但不删除该数据
`public int search(Object data);`获取数据在堆栈中的位置
* 散列映射
常用方法:
`public void clear()`清空散列映射
`public Object clone()`返回当前散列映射的一个克隆
`public V get(Object key)`返回散列映射中使用key做键的键/值对中的值
`public V put(K key,V value)`将键/值对数据存放到散列映射中,该方法同时返回键所对应的值
`public boolean isEmpty()`如果散列映射不含任何“键/值”对,方法返回true,否则返回false
`public V remove(Object key)`删除散列映射中键为参数指定的“键/值”对,并返回键对应的值
`public int size()`返回散列映射的大小,即散列映射中“键/值”对的数目
* 树集
`TreeSet`类创建的对象称作树集
在树集中,同一层中的结点从左到右按:大小顺序递增,从上到下递增
即下一层的都比上一层的小。
在插入树集的结点前要在创建对象的类中实现Comparable接口
树映射是一种特殊的树,树映射的结点存储关键字/值对
常用方法
`public boolean add(E o)`向树集添加加节点
`public void clear()`删除树集中的所有节点
`public void contains(Object o)`如果树集中有包含参数指定的对象。
`public E first()`返回树集中的第一个节点中的数据(最小的节点)
`public E last()`返回最后一个节点中的数据(最大的节点)
`public isEmpty()`判断是否是空树集,如果树集不含任何节点,该方法返回true
`public boolean remove(Object o)`删除树集中的存储参数指定的对象的最小节点
`public int size()`返回树集中节点的数目
### 教材学习中的问题和解决过程
### 代码托管
https://gitee.com/shadowsombra/java-basti-is-tip
### 感悟
在学习15章的过程中由于中间跳过了许多的学习。所以在15章许多东西都不是很明白。但在经过努力的学习之后总算学会了。
原文地址:https://www.cnblogs.com/waaaaa/p/10747579.html