1、Collection中的常用方法
Collection是所有单列集合的根接口,因此在Collection中定义了单列集合(List和Set)的一些通用方法,这些方法可用于操作所有的单列集合。
下面我们先用ArrayList集合来一一列举:
import java.util.ArrayList; public class Main { public static void main(String[] args) { //创建Arraylist集合 ArrayList list=new ArrayList(); //add向集合中添加元素 list.add("first"); list.add("second"); list.add("third"); //size() 查看元素个数 System.out.println(list.size()); //3 //isEmpty() 判断集合是否为空 System.out.println(list.isEmpty()); //false //contains(object c) 判断该集合是否包含指定集合c中的所以元素 String A="list"; String B="first"; System.out.println(list.contains(A)); //false System.out.println(list.contains(B)); //true //equal(object o) 判断与指点的对象是否相等 System.out.println(list.equals("first")); //false ArrayList list1=new ArrayList(); list1.add("first"); list1.add("second"); list1.add("third"); System.out.println(list.equals(list1)); //true //clear() 清除该集合中是所以元素 System.out.println(list); //[first, second, third] list.clear(); System.out.println(list); //[] } }
等下再单独说iterator
2、list中的常用方法
List 接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引(类似于数组中的元素角标)来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
List作为Collection集合的子接口,不但继承了Collection 接口中的全部方法,而且还增加了一些操作集合的特有方法。如下:
list接口中有Arraylist集合和LinkedList集合,我们一起来了解一下这两个集合。
(1)ArrayList
ArrayList是 List 接口的一个实现类,,它是程序中最常见的一种集合。在 ArrayList内都封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。正是由于ArrayList内部的数据存储结构是数组形式,在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作。但是,这种数组结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合在遍历和查找元素时显得非常高效。
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList list=new ArrayList(); //add向集合中添加元素 list.add("first"); list.add("second"); list.add("third"); //Object get(int x) 得到列表中指点位置的元素 System.out.println(list.get(1)); //second //Object set(int x,Object element) 将索引x处的元素换成element元素,并返还替换后的元素 list.set(1,"SECOND"); System.out.println(list); //[first, SECOND, third] //lastIndexOf(Object c) 返回c最后一次出现的索引,如果集合不包含c,则返回-1 System.out.println(list.lastIndexOf("first")); //0 System.out.println(list.lastIndexOf("FIRST")); //-1 } }
(2)LinkedList
ArrayList集合在查询元素时速度很快,但在增删元素时效率较低,为了克服这种局限性,可以使用List接口的另一个实现类LinkedList。该集合内部包含有两个 Node类型的first和 last属性维护一个双向循环链表,链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。当插入一个新元素时,只需要修改元素之间的这种引用关系即可,删除一个节点也是如此。正因为这样的存储结构,所以 LinkedList集合对于元素的增删操作表现出很高的效率。
LinkedList方法:
3、lterator遍历集合
lterator接口是Java集合框架中的一员,但它与Collection ,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而 Iterator主要用于迭代访问(即遍历)olleoxion中的元素,因此Iterator对象也被称为迭代器。
import java.util.ArrayList; import java.util.Iterator; public class Main { public static void main(String[] args) { ArrayList list=new ArrayList(); list.add("first"); list.add("second"); list.add("third"); list.add("four"); list.add("five"); //获取Iterator对象 Iterator iterator=list.iterator(); //判断集合中是否存在下一个元素 while (iterator.hasNext()) { Object ob=iterator.next(); System.out.println(ob); } } }
打印结果:
first
second
third
four
five