java集合
数组
需要开辟连续的内存单元,查询的效率高,插入的效率低
链表
单向链表:链表存的时候不需要连续的内存单元,分散的内存单元然后利用head,和last,再通过每个点指定的next来找到下一个点的内存单元位置
双线链表:不止记录next下一个点的位置,还记录了上一个点的位置prev,可以双向查询
优点:插入效率高
缺点:查询的效率比较低

索引
综合以上两种的优缺点,连续空间的数组用来存寻找真实存放对象的引用地址



list的使用
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class Coll { public static void main(String[] args) { Collection collection=new ArrayList(); //添加元素 collection.add("大便"); collection.add("饭"); collection.add("水果"); System.out.println(collection.size()); System.out.println(collection); //遍历 for(Object object:collection){ System.out.println(object); } //第二种遍历方法 Iterator iterator=collection.iterator(); //获取迭代器 while (iterator.hasNext()){ //获取迭代器的迭代次数 System.out.println(String.valueOf(iterator.next())); //打印 } //迭代器删除用iterator.remove() //删除元素 collection.remove("水果"); System.out.println(collection); //判断 System.out.println(collection.contains("水果")); //清空 collection.clear(); System.out.println(collection); } }
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; public class Coll { public static void main(String[] args) { List list=new ArrayList(); //添加元素 list.add("大便"); list.add("饭"); list.add("水果"); System.out.println(list.size()); System.out.println(list); // //遍历 for(Object object:list){ System.out.println(object); } //第二种遍历方法 Iterator iterator=list.iterator(); //获取迭代器 while (iterator.hasNext()){ //获取迭代器的迭代次数 System.out.println(String.valueOf(iterator.next())); //打印 } //迭代器删除用iterator.remove() //第三种遍历方法 for(int i=0;i<3;i++){ System.out.println(list.get(i)); //list.get(i)根据列表的角标来获取元素 } //删除元素 list.remove("水果"); System.out.println(list); //判断 System.out.println(list.contains("大便")); // //清空 // collection.clear(); // System.out.println(collection); } }

浙公网安备 33010602011771号