疯狂Java系列之j集合类

来源:互联网 发布:厦门大学大数据实验室 编辑:程序博客网 时间:2024/06/01 10:02

为了存储多个数据,或对象的引用变量

集合类主要负责保存、盛装其他数据,所以也称为容器类。

集合类有两个派生接口:CollectionMap

Collection

   

Collection接口中的方法

SetListQueue三种集合都是来自于父接口,所以C的方法可以用来操作三种集合。

boolean add(Object o):向集合中添加元素;

boolean addAll(Collection c):把集合c里所有元素添加到指定集合中;

void clear():清除集合所有元素,集合长度变成0

boolean contains(Object o):返回该集合中是否包含指定元素;

boolean containsAllCollectionc:返回集合中是否包含集合c里的所有元素;

boolean isEmpty():返回集合是否为空。为0返回true,否则返回false

Iterator iterator():返回一个iterator对象,用于遍历集合里的元素;

boolean removeObjecto:删除集合中的指定元素o,当集合中包含了一个或多个元素o时,只删除第一个符合条件的元素,返回true

boolean removeAllCollectionc:删除集合中符合集合c包含的所有元素(从集合中减掉集合c);

boolean retainAllCollectionc:删除集合中集合c不包含的元素(除集合c外,其他集合都删除,与c集合的交集);

int size():返回集合中元素个数;

Object[] toArray():把集合转换成数组,所有的集合元素变成对应的数组元素;

集合是个容器,提供以上增删清空、判空方法,能够更好理解集合的作用。详细信息参考JavaAPI文档,不用生硬记牢,程序员的记忆都在手边。

示例代码:

package javaCollection;import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;/** * 操作集合方法 * @author bobo */public class CollectionTest {/* * 操作集合方法 */public static void main(String[] args) {//ListCollection b=new ArrayList();Collection c=new ArrayList();//添加元素add//虽然集合中不能放基本数据类型的值,但是Java支持自动装箱;b.add(8);b.add("奥特曼");c.add("小怪兽");c.add(8);c.add(8);c.add(7);c.addAll(b);System.out.println("现在集合中有元素"+c.size()+"个");//删除元素c.remove(8);System.out.println("现在集合中有元素"+c.size()+"个");System.out.println("c集合中是否包含“小怪兽”字符串"+c.contains("小怪兽"));System.out.println("c集合全部元素"+c);System.out.println("=====================分割线=====================");//SetCollection person=new HashSet();person.add("孙悟空");person.add("唐三藏");System.out.println("c集合是否包含person集合?"+c.containsAll(person));person.add("小怪兽");c.removeAll(person);System.out.println("c集合全部元素"+c);System.out.println("=====================分割线=====================");c.clear();//清空,长度变为0System.out.println("c集合全部元素"+c);//元素的交集c.add("小怪兽");c.add(8);c.add(8);c.add(7);person.add("小怪兽");person.add("孙悟空");person.add("唐三藏");person.retainAll(c);//person集合和c集合的交集System.out.println("person集合的元素"+person);}}

操作集合:

c集合是ArrayListPersonHashSet,虽然实现类不同,但是都当成Collection来使用

最后的结果如下:


Set(子接口)

代表无序、不可重复的集合;添加进去的数据,不知道元素的顺序,只能通过数据元素本身查找,也就必须保证了元素不能出现重复。

List(子接口)

代表有序、重复的集合;list像是个数组,他记录了每个元素添加进去的顺序,给每个元素一个索引,且list长度可变,所以它里面的数据是可以重复的。

Queue

队列集合的实现,有些类似于List。

 

Map






代表映射关系的集合,Map的实现类中都是保存Key-value对。Map中的key不可重复,key用于标识集合中每项数据。我们可以通过key值获取map中的数据。



三种类型比较总结




1set访问,靠元素本身,必须保证不重复;

2list有索引,像数组,有序且可重复;

3mapkey-value,通过key访问value




      在集合中,最常用的类有:HashSetTreeSetArrayListArrayDequeLinkedListHashMapTreeMap。后面介绍。

以上只是简单介绍集合类中,一些基本的知识,和方法。
原创粉丝点击