class People<E>
html
其中People是泛型类的名称,E是其中的泛型,也就是说咱们并无指定E是何种类型的数据,它能够是任何对象或接口,但不能是基本类型数据。java
泛型类声明和建立对象时,类名后多了一对“<>”,并且必需要用具体的类型替换“<>”中的泛型。例如:git
Cone<Circle> coneOne;
算法
coneOne =new Cone<Circle>(new Circle());
数据结构
1.LinkedList<E>
泛型类建立的对象以链表结构存储数据,习惯上称LinkedList
类建立的对象为链表对象。例如,学习
LinkedList<String> mylist=new LinkedList<String>();
2.建立一个空双链表。设计
add(E obj)
向链表依次增长节点调试
3.遍历链表code
当用户须要遍历集合中的对象时,应当使用该集合提供的迭代器,而不是让集合自己来遍历其中的对象。因为迭代器遍历集合的方法在找到集合中的一个对象的同时,也获得待遍历的后继对象的引用,所以迭代器能够快速地遍历集合。htm
链表对象可使用iterator()
方法获取一个Iterator
对象,该对象就是针对当前链表的迭代器。
4.排序与查找
public static sort(List<E> list)
该方法能够将list中的元素升序排列。
int binarySearch(List<T> list
, T key,CompareTo<T> c)
使用折半法查找list是否含有和参数key相等的元素,若是key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置
5.洗牌与旋转
Collections
类还提供了将链表中的数据从新随机排列的类方法以及旋转链表中数据的类方法。
public static void shuffle(List<E> list)
将list中的数据按洗牌算法从新随机排列。
static void rotate(List<E> list, int distance)
旋转链表中的数据。
public static void reverse(List<E> list)
翻转list中的数据。
堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操做。
Stack<E>
泛型类建立一个堆栈对象,堆栈对象经常使用方法:
public E push(E item);
实现压栈操做
public E pop();
实现弹栈操做。
public boolean empty();
判断堆栈是否还有数据。
public E peek();
获取堆栈顶端的数据,但不删除该数据。
public int search(Object data);
获取数据在堆栈中的位置。
HashMap<K,V>
对象采用散列表这种数据结构存储数据,习惯上称HashMap<K,V>
对象为散列映射。
例如:
HashMap<String,Student> hashtable= HashSet<String,Student>();
hashtable
能够存储“键/值”对数据。
TreeSet<E>
类建立的对象称做树集。
例如TreeSet<String> mytree=new TreeSe<String>;
而后使用add
方法为树集添加节点,例如mytree.add("boy");
树集用add
方法添加节点,节点会按其存放的数据的“大小”顺序一层一层地依次排列,在同一层中的节点从左到右按“大小”顺序递增排列,下一层的都比上一层的小
教材中代码调试有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是别人没有提出相同问题,能够编辑文档添加,而后把本身提出的问题复制到下面:
for(int k=0;k<student.length;k++) treemap.put(key[k],student[k]);
put方法不了解,不清楚此段的做用。
意为将关键字与值联系起来
无
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
基于评分标准,我给本博客打分:XX分。得分状况以下:xxx
xxx
xxx
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 6/6 | 1/1 | 20/20 | |
第二周 | 245/251 | 1/2 | 18/38 | |
第三周 | 633/884 | 1/3 | 22/60 | |
第四周 | 305/1189 | 1/4 | 30/90 | |
第五周 | 410/1599 | 3/7 | 30/120 | |
第六周 | 1135/2734 | 3/10 | 30/150 | |
第七周 | 781/3515 | 3/13 | 30/180 | |
第八周 | 710/4225 | 3/16 | 30/210 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:XX小时
实际学习时间:XX小时
改进状况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)