|
发表于 2019-6-3 23:33:12
|
显示全部楼层
湖南省长沙市
今日学习内容
13.1 集合框架数据结构介绍ArrayList 以及 foreach使用
13.2 单向链表的存储结构 - 动手实现单向链表
13.3 泛型出现的意义 泛型集合的使用 动手实现泛型单向链表
-
说说ArrayList的优点与弊端?
- 优势:ArrayList 可以动态的添加数组元素;
- 弊端:ArrayList 里面装的是一个object的引用类型,当我们把值类型存进去的时候会自动进行装箱操作,取出来的时候同样需要拆箱,会浪费性能,数据量多的时候问题更大,泛型可以结局这个问题。
- 注意:如果存的是对象之类的引用类型需要保持引用,否则地址不一致无法Remove。
-
链表中的数据是使用__来表式的?
节点
-
链表的地址必须连续?
不需要连接,只需要上一个节点有指向下一个节点的指针即可,像一条自行车链条一样连起来找得到就行。
链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一个节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。单向链表结构如图1所示。
-
完成课中实现的泛型单向链表插入操作, 如下所示:
linkList.Insert(3,new Person()); //向链表的第4个节点插入一个新节点
public void Insert(int i, T val) {
if( i < 0 || i > GetLength()) {
throw new IndexOutOfRangeException("节点索引异常");
}
if (i == GetLength()) {
Append(val);
return;
}
Node<T> temp = new Node<T> (val);
if (i==0) {
temp.Next = Head;
return;
}
Node<T> temp1 = Head;
Node<T> temp2 = null;
int count = 0;
while (count < i)
{
temp2 = temp1;
temp1 = temp1.Next;
count++;
}
tmp2.Next = temp;
tmp.Next = temp1;
}
-
描述你对泛型的理解 (优点)?
- 解决了ArrayList 频繁装箱、拆箱影响性能的问题,编译时确定类型,运行时很流畅;
- 解决了那些功能类似,数据类型不同的模块需要写多个方法的问题,泛型可以使用传入传出任意类型;
-
总结:综上两点泛型可以提高代码的复用性,可读性,更符合面向对象的思想,便于代码的复用与维护。
|
评分
-
查看全部评分
|