列表有三种类型:有序列表、无序列表、索引列表html
分别能够表示为Java集合API中的列表
前端
有序列表:add(列表中添加元素)
java
无序列表:addToFront
git
ProgramOfStudy的UML图
数组
集合是Java API所提供的一系列类,能够用于动态存放多个对象。集合与数组的不一样在于,集合是大小可变的序列,并且元素类型能够不受限定,只要是引用类型。集合中不能放基本数据类型,但能够放基本数据类型的包装类。 集合类所有支持泛型,是一种数据安全的用法。java列表是集合的一种,而且列表中的元素是有序的,且容许重复。java列表又称为java list。安全
问题二解决:这句话的意思可能并非说连续与否,由于数组中的元素也是连续存在的,应该是指它出现空位置的修复速度吧,就像书上后面描述若是删除一个元素,其余元素的位置会像“坍塌”了同样以消除产生的间隙。ide
问题三解决:数组的长度是存放线性表的存储空间的长度存储分配后这个量是通常是不变的。用数组实现列表时,的确须要进行扩容操做
protected void expandCapacity() { list = Arrays.copyOf(list, list.length * 2); }
在这里这句话的含义并不等同于使用链表实现列表时的状况。学习
'contains(T)' in '新第四周.six.LinkedList.LinkedOrderedList' clashes with 'contains(T)' in '新第四周.six.LinkedList.ListADT'; both methods have same erasure, yet neither overrides the other
问题一解决:这个错误的意思是,两个方法在类型擦除后,具备相同的原生类型参数列表,可是也不能覆盖另外一个方法。泛型类型在编译后,会作类型擦除,只剩下原生类型。如参数列表中的T类型会编译成Object,可是会有一个Signature。尽管两个方法具备相同的字节码,可是类型参数信息用 一个新的签名(signature)属性记录在类模式中。JVM 在装载类时记录这个签名信息,并在运行时经过反射使它可用。这就致使了这个方法既不能做为覆盖父类contains的方法,也不能做为contains方法的重载。网站
问题二解决:经过查找资料,解释是:.net
modCount字面意思就是修改次数,全部使用modCount属性的全是线程不安全的,对内容的修改都将增长这个值,那么在迭代器初始化过程当中会将这个值赋给迭代器的 expectedModCount。在迭代过程当中,判断 modCount 跟 expectedModCount是否相等,若是不相等就表示已经有其余线程修改了,在迭代器遍历的过程当中,由于ArrayList被设计成非同步的,一旦发现这个对象的modcount和迭代器中存储的modcount不同那就抛异常。
看起来不太好理解,举个栗子:教务处网站统计学生成绩,假如进行成绩的修改,则modCount就至关于一本日志来记录每次对成绩的修改,万一实际成绩与教务处网站存出成绩有出入,则可经过日志查看问题出在哪里。
问题三:instanceof是什么意思?
用法:
boolean result = object instanceof class参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
若是 object 是 class 的一个实例,则 instanceof 运算符返回 true。若是 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
这样看来图中的意思就是判断element是不是Comparable类型的。
pp6.8
pp6.11
pp6.17
错题一
错题二:
错题三:
错题四:
错题四解析:正确的应该是实现基于数组的堆栈最有效的方法是将堆栈底部保持在数组的位置0上。由于若是栈在数组中是倒序的,效率会高。
这周在作实验时遇到的问题不少,感受没有系统化所学习的各种东西。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 0/0 | 1/1 | 8/8 |
第二周 | 1163/1163 | 1/2 | 15/23 |
第三周 | 774/1937 | 1/3 | 12/50 |
第四周 | 3596/5569 | 2/5 | 12/62 |