在前面的一节里面,我们看到的就是java的集合,大概的说了下我们的Collection接口。
今天,我们来说下list,也就是我们的列表,分别由个类.ArrayList和LinkList这个实现类.他们都u来自List,因此继承了列表Listde
的所有功能。
但是这两者之间是由区别的,我们来看看他们的特点
1.首先ArrayList是数组样式的链表,它保存数据是按照数组来进行排列的,是一个线性的结构,每一个元素都有自己的下标
寻找元素十分的容易,直接就是数组名加上下标就可以找到该元素,寻找元素非常的快,数据在计算机拿出里面按照线性来进行排列的。
然而,我们的链表式链表式有点像c++里面的链表,它的每一个的端元由两部分组成,一个式数据,另外一个就是指向下一个链表的地址.他们之间式通过链式指针来实现连接的。由此,我们可以想到的就是,要像咋子链式链表插入数据式非常的容易的,只需要将指针指向另外的一个地址就可以了,非常的简短,但是在遍历数据这块,它的性能不及ArrayList。显然,他是更加的快的。
但是前者插入数据的话,需要做内存空间移动的操作,式非常的麻烦的。
由于ArrayList和LinkList都是List的子类因此都有Listde 所有的方法。但是List继承来自Collection接口,因此会由其父类所有的属性和方法。
下面我们来看看代码吧。
import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;
public class list {
public list() {
// TODO Auto-g enerated constructor stub
}
public static void main(String[] args) {
Collection test = new ArrayList();
test.add(123);
test.add("hello world");
test.add("jack");
test.add(new Object());
ArrayList a = new ArrayList();
a.add(123);
System.out.println(a);
System.out.println(a.size());
System.out.println(a.hashCode());
a.remove(0);
System.out.println(a);
}
}
代码很简单那,这里就饿不咋多说了。