java中的数据结构01---ArrayList和LinkedList
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
java里的数据结构大致可分为4类:集合,线性结构,树结构,图结构
关于集合里的一些方法,常用的有:
下面附上本人的一些源代码和注释:
package com;
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test ct =new Test();
Collection coll =new ArrayList();
ct.adArrayList(coll);
ct.addAllTest(coll);
//清空coll中的所有元素 coll.clear();
ct.iteratorTest(coll); //遍历coll中的所有元素
System.out.println("<---------------->"+coll.contains(123));//这个是用来证明,不同的原始数据类型,cotians是无法识别的
}
public static void adArrayList(Collection coll){
coll.add("唐僧");
coll.add("孙悟空");
coll.add("猪八戒");
coll.add("沙僧");
coll.add("123");
}
public void addAllTest(Collection coll){
Collection st=new ArrayList();
st.add("王母娘娘");
st.add("玉皇大帝");
coll.addAll(st);
}
/**
* hasNext(): 判断是否有下个元素,如果有 返回true, 如果没有 返回false;
*
* next(): 返回当前位置的元素,并向下移一位
*
* 个人感觉这个类似于c语言里的指针;
*/
public void iteratorTest(Collection coll){
//Iterator : 迭代器
Iterator iter = coll.iterator();
while(iter.hasNext()){
System.out.println("-------iteratorTest--------->" + iter.next());
}
}
}
//List中的get
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
for(int i = 0; i < 20; i ++){
list.add(i);
}
System.out.println("==================>" + list.size());
for(int i = 0; i < list.size(); i++){
System.out.println(i + "------------->" + list.get(i));
}
}
}
个人总结:
1,List是Collection的一个接口,所有Collection里的方法,在List里都可以调用,而一些List里的方法和变量,在Collection里却不能调用。故在实例化的时候,能用List绝对不要用Collection
2,java里没有指针,但是可以引用,这也是Java的一个安全性所在
3,Vector与ArrayList的区别是Vector是线程安全的,故Vector相对于ArrayList的速度稍慢一些。
4,ArrayList的存储空间是连续的,故对所有元素的遍历速度较快。其底层是数组
6,泛型的使用
ArrayList<String> arrayList2=new ArrayList<String>();
这样,ArrayList里的元素就都是String类型的了,这个不一定是原始的数据类型,如果在一个包里定义了其他的对象,也可以使用
ArrayList<Student> arrayList2=new ArrayList<Student>();