集合概念、Collection接口

一、集合介绍                                                                                                                                           点击此处返回总目录

二、集合的继承实现关系

三、Collection接口

一、集合介绍

集合是java提供的一种容器,容器就是用来存数据的。

那么,集合和数组都是容器,他们的区别是什么呢?

1.数组的长度固定,集合的长度可变。

2.集合中存储的元素必须是引用类型数据(对象类型)。数组既可以存普通类型,也可以存引用类型。

前面我们使用过ArrayList集合,首先回顾一下:【例1】【例2】

例1:

package cn.itcast.demo02;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(1);                             //int是基本类型,ArrayList集合本身不能存int型数据,但是由于java中有装箱机制,所以可以这么                                                         写,java会自动封装成引用数据类型使用。
        arr.add(2);
        arr.add(3);
        
        for(int i = 0 ; i<arr.size();i++){
            System.out.println(arr.get(i));
        }
    }
}

例2:

//Person.java

package cn.itcast.demo01;

public class Person {
    private String name;
    private int age;
    
    public Person(){}
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {                                                            //自动生成,重写toString()方法。
        return "Person [name=" + name + ", age=" + age + "]";
    }
       
}

//Test.java

package cn.itcast.demo01;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<Person> arr = new ArrayList<Person>();   
        
        arr.add(new Person("liupc",24));        
        arr.add(new Person("lijing",22));
        
        for(int i =0;i<arr.size();i++){
            System.out.println(arr.get(i));                              //调用toString()方法。
        }       
    }
}

运行结果:

Person [name=liupc, age=24]
Person [name=lijing, age=22]

除了ArrayList,还有很多种集合。我们学习集合,要学会三方面的知识:

1.会用集合存储数据。

2.能够遍历访问集合中的数据。

3.能会选集合,知道使用哪种集合。

二、集合的继承实现关系

所有的集合都是放在util包里面,集合的继承实现关系:

其中,Collection接口是Collection层次的根接口。即,所有用到的集合类都是他的实现类。

List中可以存储重复元素,Set中不能存储重复元素。List中的元素是有序的,Set中的元素是无序的。

无论学习哪个,都要先学习Collection。

三、Collection接口 

Collection是集合中的根接口。所有的集合都是他的子接口或实现类。

collection中的常用方法(所有集合的实现类都必须拥有的方法):

1. boolean add(E e)                        //添加元素。【例1】

2. void clear()                                 //清空。杯子还有,水倒了。【例1】

3. boolean contains(Object o)       //判断是否包含元素。【例1】

4. int size()                                     //返回集合中元素个数。【例1】

5. Object[] toArray()                       //把集合转成一个数组。返回的是一个存储对象的数组。【例2】

6. boolean remove(Object o)        //删除对象o,如果有多个,则删除第一个。【例3】

小结:

java当中表示长度有三种方式:

数组.length        属性,返回值int

字符串.length()  方法,返回值int

集合.size()         方法,返回值int

例1:

package cn.itcast.demo03;

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

public class Test {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<String>();   //多态
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        System.out.println(coll);            //[aaa, bbb, ccc]
        System.out.println(coll.size());   //3
        
        boolean b = coll.contains("aaa");
        System.out.println(b);                //true
        
        coll.clear();
        System.out.println(coll);             //[]
        System.out.println(coll.size());    //0
        
        b = coll.contains("aaa");
        System.out.println(b);                 //false
    }
}

例2:

package cn.itcast.demo04;

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


public class Test {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<String>();
        coll.add("aaa");
        coll.add("bbb");
        
        Object[] a = coll.toArray();           //写String[]会报错。
        for(int i = 0;i<a.length;i++){
            System.out.println(a[i]);
        }
        
    }
}

例3:

package cn.itcast.demo04;

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


public class Test {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<String>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("aaa");
        System.out.println(coll);       //[aaa, bbb, aaa]
        
        boolean b = coll.remove("aaa");
        System.out.println(b);          //true
        System.out.println(coll);       //[bbb, aaa]。说明删除的是第一个"aaa"
        
        b = coll.remove("aaa");
        System.out.println(b);          //true
        System.out.println(coll);       //[bbb]
        
    }
}

猜你喜欢

转载自blog.csdn.net/pengchengliu/article/details/81745122