一.集合类
Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器。提到容器不难会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List集合、Set集合、Map集合,其实List与Set实现了Collection接口。各接口还提供了不同的实现类。
集合类的继承关系如下:
二.集合类接口的常用方法
Collection接口是层次结构中的根接口。构成Collection的单位,被称之为元素。Collection接口通常不能直接使用,但该接口提供了添加和删除元素、管理数据的方法。由于List接口与Set接口都实现了Collection接口,因此这些方法对List集合与Set集合是通用的。
1.List接口
要使用List集合,通常情况下需要声明为List类型,然后通过List接口的实现类来对集合进行实例化。List接口的实现类常用的有ArrayList与LinkedList。
(1)ArrayList类
该类实现了可变的数组,允许所有元素,包括null。可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。
语法格式为: List<数据类型> 集合名=new ArrayList<数据类型>();
(2)LinkedList类
该类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,经常需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较好;但对于随机访问集合中的对象,使用LinkedList类实现List集合的速度较慢。
语法格式为: List<数据类型> 集合名=new LinkedList<数据类型>();
通过List集合时通常声明为List类型,可通过不同的实现类来实例化集合。
注:List集合以线性方式存储对象的。
(3)List方法
1.add(数据) 添加;2.size()获取长度;3.get(索引) 获取元素;4.遍历(for、foreach);5.remover(索引值) 移除指定位置的元素;6.clean() 全部移除;7.set(索引值,新的值) 修改;
8.add(索引值,数据) 向指定的位置添加数据;9.indexOf(数据) 返回数据的索引值,如果未找到返回:-1。
(4)迭代器
Iterator 迭代器为集合提供的一种遍历方式,支持泛型。
语法格式为: Interator<数据类型>名称=集合名.interotor();
利用Iterator接口创建迭代器, Iterator接口位于java.util包下。 Iterator接口中有3个方法。
(1)hasNext():返回是否可以继续迭代;
(2)next():返回迭代的下一个元素;
(3)remove():从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作),即移除迭代器当前的错误。
List的用法操作集锦:
1 package org.hanqi.array; 2 3 import java.util.*; 4 5 public class Test1 { 6 7 public static void main(String[] args) { 8 9 10 //创建List 11 //1.指明数据类型,不需要指定大小 12 //<>表示 泛型 13 List<String> list=new ArrayList<String>(); 14 15 List<Object> list1=new ArrayList<Object>(); 16 17 list1.add(1); 18 19 //list1.add() 20 21 list.add(""); 22 23 24 //添加 25 list.add("a"); 26 list.add("b"); 27 list.add("c"); 28 29 //长度 30 System.out.println("List的长度="+list.size()); 31 32 //取出 33 System.out.println("按索引0取出get(0)="+list.get(0)); 34 35 System.out.println("遍历方式1"); 36 37 //遍历 38 for (int i=0;i<list.size();i++) 39 { 40 System.out.println(list.get(i)); 41 } 42 43 44 list.remove(0);//部分移除 45 46 System.out.println("遍历方式2"); 47 48 for(String s:list) 49 { 50 System.out.println(s); 51 } 52 53 System.out.println("遍历方式3:迭代器"); 54 55 //获取集合的迭代器,迭代器一开始是在集合的最上面 56 Iterator<String> it=list.iterator(); 57 58 //试探 59 while (it.hasNext()) 60 { 61 String t=it.next(); 62 63 if(t.equals("b")) 64 { 65 it.remove(); 66 } 67 68 System.out.println("迭代器="+t); 69 } 70 71 //移除 72 // list.clear(); 73 74 System.out.println("List的长度="+list.size()); 75 76 //插入 77 78 list.add(0,"A"); 79 80 81 82 //修改 83 list.set(1,"B"); 84 list.set(2,"C"); 85 86 for(String s:list) 87 { 88 System.out.println(s); 89 } 90 91 System.out.println("B="+list.indexOf("B")); 92 } 93 94 }