大家好,我是被白菜拱的猪。
数据结构collection
是指数据与数据的关系,共有四种形式
(1)集合:Set,具有相同元素的总和—是关心整体的数据结构,数据与数据之间没有关系(无序的)。
(2)线性:List 数据之间具有前后关系
(3)树:Tree 数据之间具有父子关系
(4)图:Map 数据之间映射关系
今天主要介绍List
List
List线性结构:
(1)ArrayList 数组线性表 连续的内存单元存储元素 优点:获取全部元素的速度快
与数组的区别就是数组要指定长度,ArrayList不用指定长度。
(2)LinkedList 链表(链式线性表) 以指针连接的线性结构 插入,删除速度快
跟个自行车链条一样,可以杂乱无章的排布,每个元素存有下一个元素的地址
例外还有
- Vector 向量
- Stack 栈
- Heap 堆
- Queue 队列
这里不加以详细介绍,主要介绍ArrayList和LinkedList
其实以上介绍的用法一致,我们需要知道的是几个常用的方法
(1)尺寸size与数组的length一致,只不过在list里面换个叫法
(2)添加 :add()
(3)插入:add(指定位置, 元素)
(4)修改:set(指定位置, 新元素)
(5)获取:get()从零开始
(6)删除:remove()
这几个方法对于向量,栈,堆,队列都是行得通的,只不过他们是根据不同的语境使用`
List<String> l = new LinkedList<String>();
l.add("abc");
l.add("abc");
l.add("xyz");
l.add("mmmm");
l.add("abc");
l.add(2, "uuu");
l.remove(4);
l.set(1, "new");
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
}
List是一个借口,借口是不能创建对象的,也就是说 new List()是错误的,因此要用实现类ArrayList实例化一个对象。
List< String > ,<…>是泛型,告诉你这个list里面是存什么类型的值,就如数组一样,一样告诉这是一个什么样的数组,存int 还是存String。