标签:转换 ati 学习总结 分类 知识点 分享 bool 生成 错误
ArrayList类
和使用链表实现的LinkedList类
,它们都可以存储由泛型参数E定义的元素,同时也都实现了List接口。add操作:无论是有序列表的add操作还是无序列表的addToFtont和addAfter操作,都与remove操作类似,需要进行多次比较和平移操作,所以其时间复杂度为O(n)。addToRear操作与栈的push操作类似,时间复杂度为O(1)。
在队列中使用环形数组时,可以把dequeue的效率从O(n)变为O(1),因为它不需要平移数组,但是在列表中因为我们可以在任何位置随意添加删除元素,所以平移数组的操作无法省略,因此是否使用环形数组就没有那么重要了。
instanceof
是什么?怎么用?public boolean equals(Object other)
{
boolean result = false;
if (other instanceof Course)
{
Course otherCourse = (Course) other;
if (prefix.equals(otherCourse.getPrefix()) &&
number == otherCourse.getNumber()) {
result = true;
}
}
return result;
}
boolean b1 = new String() instanceof String;
//b1为true
boolean b2 = "Sting" instanceof Object;
//b2为true,因为String是Object的子类
boolean b3 = new Object() instanceof String;
//b3为false,Object是父类
boolean b4 = 'A' instanceof Character;
//编译不通过,‘A’在此处视为基本数据类型char,instanceof操作符只能用作对象的判断
boolean b5 = null instanceof String;
//b5为false,这是instanceof特有的规则:若左操作数为null,结果就直接返回false,不再运算右操作数是什么类。
boolean b6 = (String)null instanceof String;
//b6为false,即使类型转换还是个 null
boolean b7 = new Date() instanceof String;
//编译不通过,instanceof操作符的左右操作数必须有继承或实现关系,否则编译出错
target
进行比较的元素上面,假如我设定的元素是temp
,它指的是用于遍历链表的指针现在所指的节点的下一个节点,当它指向的是所要找的目标元素时,实际要插入的位置(即current指向的节点)是目标元素的前一个,所以最后会导致,addAfter将所插元素插到指定位置之前而不是之后。将与target
进行比较的元素改为current
即可。NullPointerException
Deque类
,当时它的add和remove都是在一个类中写的,所以tail会发生改变。但是在列表中remove操作与add操作并不在一个类里,所以LinkedList类
中的tail从开始设定为null之后,如果直接引用的话理所当然要抛出异常。//原last方法
public T last() throws EmptyCollectionException
{
if (isEmpty()){
throw new EmptyCollectionException("LinkedList");
}
return tail.getElement();
}
//修改过的last方法
public T last() throws EmptyCollectionException
{
if (isEmpty()){
throw new EmptyCollectionException("LinkedList");
}
LinearNode<T> temp = head;
T result = temp.getElement();
while (temp.getNext() != tail){
temp = temp.getNext();
}
tail = temp;
return tail.getElement();
}
本章没有错题。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/10 | |
第二周 | 246/366 | 2/3 | 20/30 | |
第三周 | 567/903 | 1/4 | 10/40 | |
第四周 | 2346/2712 | 2/6 | 20/60 |
计划学习时间:20小时
实际学习时间:20小时
改进情况:刚看到本周的代码量时真的吓了一跳,能在一个星期左右的时间里敲两千行代码,感觉还是有点厉害的_(:з」∠)_
20172303 2018-2019-1《程序设计与数据结构》第4周学习总结
标签:转换 ati 学习总结 分类 知识点 分享 bool 生成 错误
原文地址:https://www.cnblogs.com/PFrame/p/9749621.html