当前位置:编程学习 > JAVA >>

Java笔记:Java集合概述和Set集合

本文主要是Java集合的概述和Set集合
 
1.Java集合概述
 
1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组就有点无能为力了;而且数组无法保存
具有映射关系的数据。为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。
2)Java集合类可用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等。还可以用于保存具有映射关系的关联数组。Java集合大致可以分为Set、List、Map三种体系,
其中Set代表无序、不可重复的集合;List代表有序、重复的集合;Map则代表具有映射关系的集合。Queue体系集合代表一种队列集合实现。
3)集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合类里只能保存对象(实际上保存的是对象的引用变量)。
4)Java集合类主要由两个接口派生出:Collection和Map。Set和List接口是Collection接口派生的两个子接口,他们分别代表了无序集合和有序集合;Queue是Java提供的队列实现。
Map实现类用于保存具有映射关系的数据。Map保存的每项数据都是key-value对,也就是由key和value两个值组成。Map里的key是不可重复的,key用于标识集合里的每项数据,如果需要查阅
Map中的数据时,总是根据Map的key来获取。
5)Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可以用于操作Set集合、也可以用于操作List集合和Queue集合。
boolean add(Object o):该方法用于向集合里添加一个元素。
boolean addAll(Collection c):该方法把集合c里的所有元素添加到指定集合里。
void clear():清除集合里的所有元素,将集合长度变为0。
boolean contains(Object o):返回集合里是否包含指定元素。
boolean containsAll(Collection c):返回集合里是否包含集合c里的所有元素。
boolean isEmpty():返回集合是否为空。当集合长度为0时返回true,否则返回false。
Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。
boolean remove(Object o):删除集合中的指定元素o,当集合中包含了一个或多个元素o时,这些元素将被删除,该方法将返回true。
boolean removeAll(Collection c):将集合中删除集合c里包含的所有元素(相当于用调用该方法的集合减集合c),如果删除了一个或一个以上的元素,则该方法返回true。
boolean retainAll(Collection c):将集合中删除集合c里不包含的元素(相当于把调用该方法的集合变成该集合的集合c的交集),如果该操作改变了调用该方法的集合,则该方法返回true。
int size():该方法返回集合里元素的个数。
Object[] toArray():该方法把集合转换成一个数组,所有的集合元素变成对应的数组元素。
eg:
 
 
package cn.it.lsl;
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
 
public class CollectionTest {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("小明");
        c.add(6);
        System.out.println("c集合的元素个数为:"+c.size());
        c.remove(6);
        System.out.println("c集合的元素个数为:"+c.size());
        System.out.println("c集合是否包含\"小明\"字符串:"+c.contains("小明"));
        c.add("JavaEE");
        System.out.println("c集合的元素:"+c);
        
        Collection books = new HashSet();
        books.add("JavaEE");
        books.add("Android");
        System.out.println("c集合是否完全包含books集合?"+c.containsAll(books));
        c.removeAll(books);
        System.out.println("c集合的元素:"+c);
        c.clear();
        System.out.println("c集合的元素:"+c);
        //books集合里只剩下c集合里也包含的元素
        books.retainAll(c);
        System.out.println("books集合的元素:"+books);
        
    }
}
 
6)Iterator接口遍历集合元素
Iterator接口也是Java集合框架的成员,主要用于遍历Collection集合中的元素,Iterator对象也被称为迭代器。
Iterator接口里定义了如下三个方法:
boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true。
Object next():返回集合里的下一个元素。
void remove():删除集合里上一次next方法返回的元素。
 
eg:
 
 
package cn.it.lsl;
 
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
 
public class IteratorTest {
    public static void main(String[] args) {
        Collection books = new HashSet();
        books.add("Java ee");
        books.add("Java");
        books.add("Andrroid");
        //获取books集合对应的迭代器
        Iterator it = books.iterator();
        while(it.hasNext()){
            //it.next()方法返回的数据类型是Object类型
            String book = (String)it.next();
            System.out.println(book);
            if(book.equals("Java")){
                it.remove();
            }
            book = "测试字符串";
        }
        System.out.println(books);
    }
}
 
如果要创建Iterator对象,则必须有一个被迭代的集合。
 
 
package cn.it.lsl;
 
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
 
public class IteratorTest {
    public static void main(String[] args) {
        Collection books = new HashSet();
        books.add("Java ee");
        books.add("Java");
        books.add("Android");
        //获取books集合对应的迭代器
        Iterator it = books.iterator();
        while(it.hasNext()){
            //it.next()方法返回的数据类型是Object类型
            String book = (String)it.next();
            System.out.println(book);
            if(book.equals("Android")){
                //it.remove();
              &nbs
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,