Java集合类--->入门上篇

  最近我又在研究Java语言,这是第五次还是第六次学习Java的集合类,你也许会惊讶为什么这么多次?哈哈,因为之前的我没有记录下来,忘记了,当然最主要还是觉得自己毅力不够,没有坚持。那么,这次我将换一种方式进行Java的框架类学习:一是只学习常用的部分,二是一边学习一边写成博客,并用代码进行验证。

  集合类又叫容器类,容器是什么?容器就是装东西的,它在Java中就是装对象的,这时候我就纳闷儿了:数组不就可以存储各种各样的对象吗,又增加一个什么集合类,岂不是多此一举?于是我就开始查阅资料,终于得到一个结果,使用数组的确可以存储对象,但是如果对象数目无法确定的情况下,数组是不实用的,因为数组的长度是不变的,然而呢,集合类可以存储任意类型的对象,并且长度可以变。因此,我认为集合类可以完全取代数组,除非一些特别简单的情况,可以考虑使用数组,其余时候都应该首先考虑使用集合类。

  集合类按照存储结构(数据结构中又叫做物理结构)分为:单列集合、双列集合。

  哦,对了,所有的集合类都位于java.util包中,使用之前请务必import一下。

  接下来看看常用的集合框架图:(引用自网络)

  

  Collection:是单列集合的根接口。常用的两个子接口分别是List、Set。

         List的特点就是:元素序,元素可以重复。主要实现类ArrayList、LinkedList、Vector(如今很少用)。

         Set的特点就是:元素序,而且不能重复。主要实现类HashSet、TreeSet。

  Map:是双列集合的根接口,双列集合主要用来存储键值对。主要实现类HashTable、HashMap、TreeMap。

  我先学习的是单列集合,从根接口Collection开始。根接口定义了很多单列集合通用的方法,主要作用:在集合中添加元素、删除元素、获取集合中元素个数等。用实例对常用方法进行说明:(使用ArrayList举例)

  

package testCollection;
import java.util.*;
//测试单列集合根接口Collection
public class CollectionTest00 {
    public static void main(String[] args)
    {
        Collection coll = new ArrayList();
        Person person = new Person("仗剑走天涯", 23);
        person.toString();
        //向集合中添加一个元素 add()
        coll.add("ZSY is a beauty!");
        coll.add(123);
        coll.add(person);
        //获取该集合元素的个数 size()
        System.out.println("集合元素个数:"+coll.size()+"个");
        //判断该集合元素是否为空
        if(!coll.isEmpty())
            System.out.println("集合不是空!");
        else
            System.out.println("集合是空!");
        //判断是否包含某个元素contains(Object o)
        System.out.println(coll.contains(123));
        //删除集合中指定元素remove(Object o)
        System.out.println(coll.toString());
        coll.remove(123);
        System.out.println(coll.contains(123));
        System.out.println(coll.toString());
        //删除该集合中的所有元素
        coll.clear();
        System.out.println(coll.size());
        //再次初始化
        coll.add("ZSY is a beauty!");
        coll.add(123);
        coll.add(person);
        System.out.println(coll.size());
        //将指定集合中的所有元素添加到该集合中 addAll(Collection c)
        Collection coll1 = new ArrayList();
        coll1.addAll(coll);
        System.out.println("复制后的:
"+coll1);
        //删除指定集合的所有元素
        coll.remove(123);
        System.out.println("删除前的:
"+coll);
        coll1.removeAll(coll);
        System.out.println("删除后的:
"+coll1);
        //返回在该集合的元素上进行迭代的迭代器,用于遍历该集合所有元素itrator
        Iterator it = coll.iterator();
        while(it.hasNext())
        {
            Object obj = it.next();
            System.out.println(obj);
        }
        //增强型for循环,进行遍历
        for(Object obj : coll)
        {
            System.out.println(obj);
        }
    }
    
}

class Person{
    private String name;
    private int age;
    
    Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    
    public String getName()
    {
        return this.name;
    }
    
    public int getAge()
    {
        return this.age;
    }
    
    public void setName(String name)
    {
        this.name=name;
    }
    
    public void setAge(int age)
    {
        this.age=age;
    }
    @Override
    public String toString()
    {
        String str = new String("我的名字叫:"+name+";我的年龄:"+age+"岁。");
        System.out.println(str);
        return str;   
    }
}

  这里,必须隆重给自己介绍一下Itrator接口,它的中文名:迭代器------>实质功能就是用来进行循环遍历所有元素的,它也是集合框架中的一员。对于它的使用方式,常用的格式就是如代码所示:先得到Itrator对象,然后判断集合是否还有下一个元素,用next()方法取出下一个元素,记住规矩:先取后用

  代码中,还用到了增强型for循环,它的格式如下:

  for(集合类存储类型 变量名:集合的变量名)

  {

  执行语句...

  }//当然增强型for循环也适用于数组,例如:

        int[] a=new int[10];
        for(int i=0;i<10;i++)
        {
            a[i]=i+4;
        }
        for(int b:a)
        {
            System.out.println(b);
        }

  集合框架入门上篇,就到这里了,主要分析了单列集合的常用操作。

附:以上程序运行结果:

  

原文地址:https://www.cnblogs.com/Cirgo/p/8445497.html