1.什么是集合?

对一些数据的存储就叫做集合,相比于数组,这是一种动态的集合。

        1.可以动态的保存任意多个对象

        2.提供一些动态操作集合的方法比如:add ,remove ,set ,get  等。

        3.使用集合更加方便,提高代码编写效率。

2.集合的继承关系

Collection

java中集合的父接口 java中集合的用法_System

Map

java中集合的父接口 java中集合的用法_开发语言_02

3.对集合的一些基本操作

1. 创建一个arraylist集合。

ArrayList arrayList = new ArrayList();

2. 追加元素。

arrayList.add();

3. 删除index位置的元素

arrayList.remove();

4. 直接删除某个元素

arrayList.remove();

5. 元素是否包含在arraylist 中

arrayList.contains()

6. 获取集合的元素个数

arrayList.size()

7. 判断集合是否为空

arrayList.isEmpty()

8. 清空集合

arrayList.clear();

9. 添加多个元素

arrayList.addAll();

10. 是否包含一个集合

arrayList.containsAll();

11. 删除多个元素

arrayList.removeAll();

import java.util.ArrayList;

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                                // 创建一个arraylist集合。
                                ArrayList arrayList = new ArrayList<>();

                                // 追加元素。
                                arrayList.add("Start");
                                arrayList.add(123);
                                arrayList.add(3.14159);

                                System.out.println(arrayList);

                                // 删除index位置的元素
                                arrayList.remove(2);
                                System.out.println(arrayList);

                                // 直接删除某个元素
                                arrayList.remove("Start");
                                System.out.println(arrayList);

                                // 元素是否包含在arraylist 中
                                System.out.println(arrayList.contains(123));
                                
                                // 获取集合的元素个数
                                System.out.println(arrayList.size());

                                // 判断集合是否为空
                                System.out.println(arrayList.isEmpty());

                                // 清空集合
                                arrayList.clear();
                                System.out.println(arrayList);

                                // 添加多个元素
                                ArrayList arrayList2 = new ArrayList();
                                arrayList2.add("good");
                                arrayList2.add(12345);
                                arrayList2.add(3.444222);

                                arrayList.addAll(arrayList2);

                                System.out.println(arrayList);

                                // 是否包含一个集合
                                boolean b=arrayList.containsAll(arrayList2);
                                System.out.println(b);

                                // 删除多个元素

                                arrayList.removeAll(arrayList2);
                                System.out.println(arrayList);

                }
}

4.集合迭代器的使用

1.什么是迭代器?

我的说法

       就是想办法遍历集合元素。

百度说法更加专业

       迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。

2.while类型的迭代器遍历元素

比如如下例子

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

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                               
                                // 创建集合
                                Collection col = new ArrayList();
                                col.add(new Person("fanren", 2341));
                                col.add(new Person("qingqing", 4422));
                                col.add(new Person("chado", 2344));

                                // 得到集合的迭代器

                                Iterator it = col.iterator();
                                // 判断it指向的是否为空
                                while(it.hasNext())
                                {
                                                // 如果不为空,就直接输出元素。
                                                System.out.println(it.next());
                                }
                                
                }
}

class Person{
                private double salary;
                private String name;

                public Person(String name,double salary)
                {
                                this.name=name;
                                this.salary=salary;
                }

                @Override
                public String toString() {
                                return this.name+"\t"+this.salary;
                }
}

3.while迭代器分如下几步

        1.得到集合的迭代器

        Iterator it = col.iterator();

        2.判断it指向的是否为空

        while(it.hasNext())

         {

                3.如果不为空,就直接输出元素。

                System.out.println(it.next());

        }

4.for循环的迭代器遍历元素。

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

public class main {
                @SuppressWarnings({"all"})
                public static void main(String [] args)
                {
                               
                                // 创建集合
                                Collection col = new ArrayList();
                                col.add(new Person("fanren", 2341));
                                col.add(new Person("qingqing", 4422));
                                col.add(new Person("chado", 2344));

                                
                                // for循环遍历

                                // 从集合col中取元素放到ob中
                                for(Object ob : col)
                                {
                                                // 直接输出。
                                                System.out.println(ob);
                                }
                                
                }
}

class Person{
                private double salary;
                private String name;

                public Person(String name,double salary)
                {
                                this.name=name;
                                this.salary=salary;
                }

                @Override
                public String toString() {
                                return this.name+"\t"+this.salary;
                }
}

for类型的迭代器底层还是while类型的迭代器。