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); //[黄固, 欧阳锋, 段智兴, 洪七公, 王重阳]
}
}
方法名 | 说明 |
---|---|
boolean add(E e) |
添加元素 |
boolean remove(Object o) |
从集合中移除指定的元素 |
void clear() |
清空集合中的元素 |
boolean contains(Object o) |
判断集合中是否存在指定的元素 |
boolean isEmpty() |
判断集合是否为空 |
int 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("中神通");
//调用remove方法进行删除一个元素,删除中神通
System.out.println(c.remove("中神通"));//输出为 true 删除成功
System.out.println(c.remove("中神通"));//删除已经被删除的元素,返回值为false
//查看删除后的结果
System.out.println(c);// [东邪, 西毒, 南帝, 北丐]
}
}
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);// 输出为 []
}
}
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);// 输出为 []
}
}
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);// 输出为 []
}
}
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集合方式:
- 增强for循环进行遍历
- 迭代器: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()+",");
}
}
}