疯狂Java系列之j集合类

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

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

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

Collection

   疯狂Java系列之j集合类_第1张图片

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) {
		//List
		Collection 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("=====================分割线=====================");
		//Set
		Collection 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();//清空,长度变为0
		System.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来使用

最后的结果如下:

疯狂Java系列之j集合类_第2张图片

Set (子接口)

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

List(子接口)

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

Queue

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

 

Map


疯狂Java系列之j集合类_第3张图片



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



三种类型比较总结

疯狂Java系列之j集合类_第4张图片


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

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

3mapkey-value,通过key访问value




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

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

你可能感兴趣的:(Java)