0
点赞
收藏
分享

微信扫一扫

00019.04 Collection集合介绍


系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​前言​​
  • ​​一、是什么?​​
  • ​​二、Collection​​
  • ​​1、Collection:接口​​
  • ​​2、API​​
  • ​​三、完整代码​​

前言

前面我们自己设计的ArrayList、 单向链表等实际上都是一种数据结构,容器

一、是什么?

容器是用来干嘛的?
用来装各种对象,不仅仅这样,还得去管理它们
容器有相同的操作标准:
(1)增
(2)删
(3)改
(4)查

Java给这些集合抽取两大接口:
1、Collection:
规范单值集合的接口,obj --》单身party
2、Map
规范对值集合的接口,(key,value) -->情侣party

二、Collection

1、Collection:接口

(1)它是根接口

(2)它没有直接的实现类,有更具体的子接口:List和Set…

(3)有一些的元素是可以重复的,有些集合的元素是不能重复,有些集合的元素是有序的,有些集合的元素是无序的

00019.04 Collection集合介绍_多态

2、API

(1)添加

add(Object obj):添加一个元素

addAll(Collection c):添加多个元素

00019.04 Collection集合介绍_System_02


00019.04 Collection集合介绍_Test_03


00019.04 Collection集合介绍_Collection_04


00019.04 Collection集合介绍_Collection_05


注意区别

00019.04 Collection集合介绍_System_06

(2)获取有效元素的个数

int size()

(3)是否包含

contains(Object o) :判断o是否在当前的集合中

containsAll(Collection c) :判断c是否是当前集合的子集

00019.04 Collection集合介绍_多态_07


00019.04 Collection集合介绍_System_08

00019.04 Collection集合介绍_Collection_09

(4)boolean isEmpty() :判断当前集合是否为空

等价于 集合对象.size()==0

00019.04 Collection集合介绍_Test_10


(5)remove(Object o):删除一个

removeAll(Collection c):删除多个 this = this - this ∩ c (∩ 意思是交集)

clear():清空所有

00019.04 Collection集合介绍_多态_11


00019.04 Collection集合介绍_System_12


(6)retainAll(Collection<?> c) :保留交集 this = this ∩ c

00019.04 Collection集合介绍_Test_13


(7)Object[] toArray() :把集合中的元素用一个数组返回

00019.04 Collection集合介绍_Test_14


至此告一段落,下一篇讲遍历

三、完整代码

public class TestCollection {
@SuppressWarnings("all")
@Test
public void test9(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

Object[] all = c.toArray();
System.out.println(Arrays.toString(all));
}

@SuppressWarnings("all")
@Test
public void test8(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

Collection c2 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c2.add("张三");
c2.add("杨洪强");

c.retainAll(c2);
System.out.println(c);
System.out.println(c2);
}

@SuppressWarnings("all")
@Test
public void test7(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

Collection c2 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c2.add("张三");
c2.add("杨洪强");

c.removeAll(c2);
System.out.println(c);//说明ArrayList重写了toString
}

@SuppressWarnings("all")
@Test
public void test6(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

Collection c2 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c2.add("张三");
c2.add("李四");

c.removeAll(c2);
System.out.println(c);//说明ArrayList重写了toString
}


@SuppressWarnings("all")
@Test
public void test5(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

c.remove("张三");//删除一个
System.out.println(c);//说明ArrayList重写了toString
}

@SuppressWarnings("all")
@Test
public void test4(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

Collection c2 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c2.add("张三");
c2.add("李四");

Collection c3 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c3.add("张三");
c3.add("杨洪强");

System.out.println(c.containsAll(c2));//c2是c的子集
System.out.println(c.containsAll(c3));//c3不是c的子集
}

@SuppressWarnings("all")
@Test
public void test3(){
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add("张三");
c.add("李四");
c.add("王五");

System.out.println(c.contains("张三"));
System.out.println(c.contains("杨洪强"));
}

@SuppressWarnings("all")
@Test
public void test2(){
/*
* 我这里左边写Collection,目的是只关注Collection
* 因为多态引用时,c编译期间只能访问Collection的方法
*/
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c.add(1);
c.add(2);
c.add(3);

Collection c2 = new ArrayList();//ArrayList是Collection下面的一个实现类而已
c2.add("张三");
c2.add("李四");
c2.add("王五");

c.addAll(c2);//把c2中的所有元素都添加到c集合中
// c.add(c2);

System.out.println("获取有效元素的个数:" + c.size());
System.out.println(c);
}


@SuppressWarnings("all")
@Test
public void test1(){
/*
* 我这里左边写Collection,目的是只关注Collection
* 因为多态引用时,c编译期间只能访问Collection的方法
*/
Collection c = new ArrayList();//ArrayList是Collection下面的一个实现类而已

c.add("张三");
c.add("李四");
c.add("王五");

System.out.println("获取有效元素的个数:" + c.size());
}
}


举报

相关推荐

Collection集合

集合Collection

集合Collection使用

Laravel 集合 Collection

java集合--Collection

Java_Collection集合

Java中Collection集合

0 条评论