您的位置:首页 > 编程语言 > Java开发

java集合框架总结一

2014-04-05 20:15 309 查看
java集合框架用于存储数据,也被称为集合类 位于java.util包下

java.util包下常用接口和类

Collection和Map是Java集合框架的根接口

List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。

Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。

Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。

collection常用方法:

Collection的常见方法:

1,添加。
    boolean add(Object obj):
    boolean addAll(Collection coll):

2,删除。
    boolean remove(object obj):
    boolean removeAll(Collection coll);
    void clear();
3,判断:
    boolean contains(object obj):
    boolean containsAll(Colllection coll);
    boolean isEmpty():判断集合中是否为空。

4,获取:
    int size():
    Iterator iterator()

5,其他:
    boolean retainAll(Collection coll);取交集。
    Object[] toArray():将集合转成数组。

import java.util.ArrayList;
import java.util.Collection;

/**
* 2014-4-3
* 集合框架Collection接口演示
* @author Administrator
*
*/
public class CollectionDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection coll1=new ArrayList();
Collection coll2=new ArrayList();
show(coll1,coll2);

}
public static void show(Collection coll1,Collection coll2){
//添加coll1,coll2
coll1.add("abc");
coll1.add("123");
coll1.add("mno");
System.out.println("coll1:"+coll1+'\n');

//把coll1中的集合元素添加到coll2中去。(包括与coll2相同那部分),coll1不变
coll2.add("123");
coll2.addAll(coll1);
System.out.println("coll2:"+coll2+'\n');

//删除
//coll1.remove(0);                    //错误写法
//System.out.println(coll1);
coll1.remove("abc");
System.out.println("coll1:"+coll1+'\n');

//把c2中与c1相同的部分删除,c1不变
coll2.removeAll(coll1);
System.out.println("coll1:"+coll1);
System.out.println("coll2:"+coll2+'\n');

//判断
System.out.println("coll1中是否包含123:"+coll1.contains("123"));

//判断c1与c2是否相同,相同返回true
System.out.println("c1与c2是否相同:"+coll1.containsAll(coll2));

System.out.println("coll2:"+coll2);
System.out.println("c2中是否为空:"+coll2.isEmpty());

//获取
System.out.println(coll1);
System.out.println("coll1中元素个数:"+coll1.size()+'\n');

//coll1与coll2取交集,相同的保存在coll1中,coll2不变
System.out.println("coll1:"+coll1);
System.out.println("coll2:"+coll2);
coll1.retainAll(coll2);
System.out.println("coll1:"+coll1);
System.out.println("coll2"+coll2+'\n');

//将集合转化为数组
coll2.add("mno");
Object[] a=coll2.toArray();
//for each循环
System.out.println("输出数组b");
for(Object x:a)
System.out.println(x);
System.out.println();
for(Object y:a)
System.out.println(y.toString());
}
}


程序运行结果:

coll1:[abc, 123, mno]

coll2:[123, abc, 123, mno]

coll1:[123, mno]

coll1:[123, mno]
coll2:[abc]

coll1中是否包含123:true
c1与c2是否相同:false
coll2:[abc]
c2中是否为空:false
[123, mno]
coll1中元素个数:2

coll1:[123, mno]
coll2:[abc]
coll1:[]
coll2[abc]

输出数组b
abc
mno

abc
mno


Iterator接口

用于遍历集合中的元素,也被称为迭代器。Iterator只能向后迭代。

常用方法:

boolean hasNext():判断是否有下一个元素,如果仍有元素可以迭代,则返回true

Object next():第一次调用返回第一个元素,以后返回集合里下一个元素。

void remove();删除集合里上一次next方法返回的元素。

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class IteratorDemo {

/**
*2014-4-5
*Iterator接口演示
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection c=new ArrayList();
show(c);

}
public static void show(Collection c){
c.add("123");
c.add("abc");
c.add("efg");
c.add("mno");
//通过Iterator访问集合中的元素
Iterator i=c.iterator();
while(i.hasNext()){
String x=(String)i.next();
if(x.equals("123"))
i.remove();
//在迭代过程中,不能进行例如Collection这样的集合操作,只能进行迭代器操作
//c.remove("123");
else
System.out.println(x);

}
}
}


程序运行结果:

abc
efg
mno


注意:普通情况下,当我们把对象存入集合中后,集合会忘记这个对象的类型,把所有集合元素都当成Object处理,JDK 1.5引入泛型之后,可以使用泛型来限制集合中元素的类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: