Collection

Collection

Collection集合的概述

  • Collection 是单列集合的顶层接口,他表示一组对象,这些对象也称为 Collection 的元素

  • JDK 不提供子接口的任何实现,但提供更具体的子接口(如 Set 和 List 等)实现接口

demo:
使用Conlltion的方式

package demo01;

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

/**
 * @Classname : demo01
 * @Description : TODO Collection的使用
 * @Author : [email protected]
 */
public class demo01 {
    public static void main(String[] args) {
        //Collection是单列集合的顶层接口,通过多态的形式存储子类接口实现类的进行使用
        Collection<String> C = new ArrayList<>();//存储子类list中的实现类ArrayList
        //调用方法add
        C.add("黄固");
        C.add("欧阳锋");
        C.add("段智兴");
        C.add("洪七公");
        C.add("王重阳");
        // TODO Collection集合C可以直接进行输出
        System.out.println(C); //[黄固, 欧阳锋, 段智兴, 洪七公, 王重阳]
    }
}

Collection的常用方法

方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

remove

package demo01;

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

/**
 * @Classname : demo02
 * @Description : TODO Collection 的常用方法
 * @Author : [email protected]
 */
public class demo02 {
    public static void main(String[] args) {
        //Collection接口,去存储子类接口实现类ArrayList
        Collection<String> c = new ArrayList<>();
        //调用add方法进行添加元素
        c.add("东邪");
        c.add("西毒");
        c.add("南帝");
        c.add("北丐");
        c.add("中神通");
        //调用remove方法进行删除一个元素,删除中神通
        System.out.println(c.remove("中神通"));//输出为 true 删除成功
        System.out.println(c.remove("中神通"));//删除已经被删除的元素,返回值为false
        //查看删除后的结果
        System.out.println(c);// [东邪, 西毒, 南帝, 北丐]
    }
}

clear

package demo01;

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

/**
 * @Classname : demo02
 * @Description : TODO Collection 的常用方法
 * @Author : [email protected]
 */
public class demo02 {
    public static void main(String[] args) {
        //Collection接口,去存储子类接口实现类ArrayList
        Collection<String> c = new ArrayList<>();
        //调用add方法进行添加元素
        c.add("东邪");
        c.add("西毒");
        c.add("南帝");
        c.add("北丐");
        c.add("中神通");
        //调用方法clear进行清空里面的所有元素
        c.clear();
        //查看删除后的结果
        System.out.println(c);// 输出为 []
    }
}

contains

package demo01;

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

/**
 * @Classname : demo02
 * @Description : TODO Collection 的常用方法
 * @Author : [email protected]
 */
public class demo02 {
    public static void main(String[] args) {
        //Collection接口,去存储子类接口实现类ArrayList
        Collection<String> c = new ArrayList<>();
        //调用add方法进行添加元素
        c.add("东邪");
        c.add("西毒");
        c.add("南帝");
        c.add("北丐");
        c.add("中神通");
        //调用方法contains 查看集合中是否存在指定的元素
        System.out.println(c.contains("中神通")); //集合中存在返回 true
        System.out.println(c.contains("杨过"));//集合中没有该元素返回false
        //查看删除后的结果
        System.out.println(c);// 输出为 []
    }
}

isEmpty

package demo01;

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

/**
 * @Classname : demo02
 * @Description : TODO Collection 的常用方法
 * @Author : [email protected]
 */
public class demo02 {
    public static void main(String[] args) {
        //Collection接口,去存储子类接口实现类ArrayList
        Collection<String> c = new ArrayList<>();
        //调用add方法进行添加元素
        c.add("东邪");
        c.add("西毒");
        c.add("南帝");
        c.add("北丐");
        c.add("中神通");
        //调用方法isEmpty,判断集合是否为空
        System.out.println(c.isEmpty());//集合不是空的返回false
        //清空集合c
        c.clear();
        System.out.println(c.isEmpty());//集合为空返回true
        //查看删除后的结果
        System.out.println(c);// 输出为 []
    }
}

size

package demo01;

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

/**
 * @Classname : demo02
 * @Description : TODO Collection 的常用方法
 * @Author : [email protected]
 */
public class demo02 {
    public static void main(String[] args) {
        //Collection接口,去存储子类接口实现类ArrayList
        Collection<String> c = new ArrayList<>();
        //调用add方法进行添加元素
        c.add("东邪");
        c.add("西毒");
        c.add("南帝");
        c.add("北丐");
        c.add("中神通");
        //调用方法size来判断集合里面的元素个数
        System.out.println(c.size()); // 5
    }
}

案例–双色球

红球的值1-33之间的数有6个
蓝球的值1-16之间的数有1个

通过集合的方式

package demo01;


import java.util.*;

/**
 * @Classname : demo03
 * @Description : TODO 案例 - 双色球
 * 红球是6个 1-33之间的数 蓝色球是1个 1-16之间的数
 * @Author : [email protected]
 */
public class demo03 {
    public static void main(String[] args) {
        //一个生成随机数的对象
        Random ran = new Random();
        //蓝色球获取1-16之间的随机值
        int blueBall = ran.nextInt(16)+1;
        //定义一个数组
        ArrayList<Integer> redBall = new ArrayList<>();//红色球的集合
        int red;//每个红球的值
        //循环进行赋值,循环的终止条件是集合里面的元素不能超过6个
        while(redBall.size()<6) {
            red = ran.nextInt(33) + 1; //生成红色球的随机值
            //通过判断集合里面是否存在重复的元素,没有重复的元素返回一个false,非false即true
            if (!(redBall.contains(red)))
                redBall.add(red);//进行添加
        }
        //进行排序
        Collections.sort(redBall);
        //输出结果
        System.out.println("红球 "+ redBall);
        System.out.println("蓝色球:"+blueBall);
    }
}

通过数组的方式进行实现

package demo01;

import java.util.Arrays;
import java.util.Random;

/**
 * @Classname : demo04
 * @Description : TODO 案例 - 双色球 - 数组方式进行实现
 * 红球是6个 1-33之间的数 蓝色球是1个 1-16之间的数
 * @Author : [email protected]
 */
public class demo04 {
    public static void main(String[] args) {
        //获取随机值
        Random ran = new Random();
        //蓝色球
        int blueBall = ran.nextInt(16) + 1;
        //红色球的数组
        int[] redBall = new int[6];
        int red;//红色球的值
        //需要生成6次随机值
        for (int i = 0, j; i < 6; i++) {
            red = ran.nextInt(33) + 1;
            //每次生成的随机值要和数组里面的值进行比较是否存在重复
            for (j = 0; j < i; j++) {
                if (red == redBall[j]) {
                    i--;//数组的下标回到之前的位置
                    break;//直接退出循环
                }
                //如果是正常退出循环,下标i之前的元素没有重复的,判断j是否小于i,
            }
            if (!(j <i)) {
                redBall[i] = red;
             //   System.out.println(redBall[i]);
            }
        }
        //选择排序法
        for (int i = 0; i < redBall.length-1; i++) {
            for (int j = 1; j < redBall.length; j++) {
                if(redBall[i]<redBall[j]){
                    redBall[i]^=redBall[j];
                    redBall[j]^=redBall[i];
                    redBall[i]^=redBall[j];
                }
            }
        }
        System.out.println("红球 " + Arrays.toString(redBall));
        System.out.println("蓝球:" + blueBall);
    }
}

Collection集合的遍历

参考文章

遍历Collection集合方式:

  1. 增强for循环进行遍历
  2. 迭代器:Collection中的方法Iterator
  • public E next():返回迭代的下一个元素。
  • public boolean hashNext():判断是否有下一个元素,如果有返回true,没有返回false。

demo:

package demo01;

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

/**
 * @Classname : demo05
 * @Description : TODO Iterator - 迭代器的使用
 * @Author : [email protected]
 */
public class demo05 {
    public static void main(String[] args) {
        //一个空的Collection集合
        Collection<String> c = new ArrayList<>();
        //调用方法add添加元素
        c.add("黄固");
        c.add("欧阳锋");
        c.add("洪七公");
        c.add("段智兴");
        c.add("中神通");
        // TODO 第一种遍历方式:增强for循环
        for(String name : c){
            System.out.print(name+",");
        }
        System.out.println("\n=============================");
        // TODO 第二种遍历方式:迭代器 Iterator
        Iterator<String> it = c.iterator();//
        while(it.hasNext()){
            System.out.print(it.next()+",");
        }
    }
}

你可能感兴趣的:(java,开发语言)