java中的数据结构01---ArrayList和LinkedList

      数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

java里的数据结构大致可分为4类:集合,线性结构,树结构,图结构

常用集合类主要分为 Collection Map 两大分支。橙色表示接口,蓝色表示实现



关于集合里的一些方法,常用的有:


下面附上本人的一些源代码和注释:


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,VectorArrayList的区别是Vector是线程安全的,故Vector相对于ArrayList的速度稍慢一些。

4,ArrayList的存储空间是连续的,故对所有元素的遍历速度较快。其底层是数组

5, LinkedList 的存储方式是链式的,所以每个元素都记录了前元素和后元素,故插入元素和删除的速度较快。其底层是链表

6,泛型的使用

        ArrayList<String> arrayList2=new ArrayList<String>();  

这样,ArrayList里的元素就都是String类型的了,这个不一定是原始的数据类型,如果在一个包里定义了其他的对象,也可以使用

        ArrayList<Student> arrayList2=new ArrayList<Student>();  

猜你喜欢

转载自blog.csdn.net/qq_39728274/article/details/78661555