集合概述
- 在实际开发中,需要将使用的对象存储于特定数据结构的容器中,JDK提供了这样的容器——集合(Collection)
- Collection是一个接口:list和set
- list集合的特点是元素有序可重复
- set集合的特点是元素无序且不可重复
Collection接口
Collection接口是所有单列集合额的跟接口,因此在Collection中定义了单列集合(list和set)的一些通用方法,这些方法可用于操作所有的单列集合
方法声明 | 功能描述 |
---|---|
boolean add(Object o) | 向集合中添加一个元素 |
boolean addAll(Collection) | 将指定集合c中的所有元素添加到该集合中 |
void clear( ) | 删除该集合中的所有元素 |
boolean remove(Object o) | 删除该集合中指定的元素 |
boolean removeAll(Collection c) | 删除该集合中包含指定集合c中的所有元素 |
boolean isEmpty( ) | 判断该集合是否为空 |
booolean contains(Object o) | 判断该集合中是否包含某个元素 |
boolean containAll(Collection o) | 判断该集合中是否包含指定集合c中的所有元素 |
Iterator iterator() | 返回在该集合的元素上进行迭代的迭代器,用于遍历该集合所有元素 |
int size() | 获取该集合元素个数 |
Stream<E> stream() |
将集合源转换为有序元素的流对象 |
个别方法的演示
package day03;
import java.util.ArrayList;
import java.util.Collection;
/**
* Java.util.Collection
* 集合,用于存储一组元素。提供了维护集合的相关操作。
* 其派生了两个子接口:
* List:可重复集
* Set:不可重复集
* 元素是否重复是依靠元素自身equals方法比较的结果
* 而定的
* @author
*
*/
public class CollectionDemo1 {
public static void main(String[] args) {
Collection c= new ArrayList();
/**
* boolean add(E e)
* 向集合中添加元素
* 当元素成功添加到集合 后返回true
*/
c.add("one");
c.add("two");
c.add("three");
System.out.println(c);
/**
* int size()
* 返回当前集合的元素个数
*/
System.out.println("size:"+c.size());
/**
* boolean isEmpty()
* 判断当前集合是否不含有任何元素
* 空集合
*/
boolean isEmpty = c.isEmpty();
System.out.println("是否是空集: "+isEmpty);
/**
* void clear()
* 清空集合元素
*/
System.out.println("清空集合");
c.clear();
System.out.println("size:"+c.size());
System.out.println("是否是空集:"+c.isEmpty());
}
}
package day03;
import java.util.ArrayList;
import java.util.Collection;
import day02.Point;
/**
* boolean contains(E e)
* 判断当前集合是否包含给定元素
* @author
*
*/
public class CollectionDemo2 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(new Point(1,2));
c.add(new Point(3,4));
c.add(new Point(5,6));
System.out.println(c);
Point p = new Point(1,2);
//c.add(p);
/**
* 集合判断是否包含指定元素是依靠元素的equals
* 比较的结果。只要集合中由元素与给定元素比较
* 为true,则认为包含
*/
boolean contains = c.contains(p);
System.out.println("是否包含:"+contains);
}
}
package day03;
import java.util.ArrayList;
import java.util.Collection;
import day02.Point;
/**
* 集合存放元素存放的是元素的引用(地址)
* @author
*
*/
public class CollectionDemo3 {
public static void main(String[] args) {
Collection c = new ArrayList();
Point p = new Point(1,2);
c.add(p);
System.out.println("p:"+p);
System.out.println(c);//[(1,2)]
p.setX(2);
System.out.println("p:"+p);
System.out.println(c);//[(2,2)]
}
}
package day04;
import java.util.ArrayList;
import java.util.Collection;
import day02.Point;
/**
* 删除集合元素
* @author
*
*/
public class CollectionDemo1 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(new Point(1,2));
c.add(new Point(3,4));
c.add(new Point(5,6));
System.out.println(c);
Point p = new Point(1,2);
/**
* boolean remove(E e);
* 从集合中删除指定元素。删除成功返回true
* 只删除集合总=中第一个与给定元素equals比较
* 为true的元素
*/
c.remove(p);
System.out.println("删除完毕");
System.out.println(c);
}
}
package day04;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
/**
* 集合的批量操作
* @author
*
*/
public class CollectionDemo2 {
public static void main(String[] args) {
Collection c1 = new ArrayList();
c1.add("java");
c1.add("C++");
c1.add(".net");
System.out.println(c1);
Collection c2 = new HashSet();//不能放重复元素
c2.add("ios");
c2.add("android");
c2.add("Linux");
System.out.println(c2);
/**
* 取并集
* boolean addAll(Collection c)
* 将给定集合中的所有元素添加到当前集合中
* 添加后只要当前集合元素数量发生了变化,则
* 返回true
*/
boolean flag = c1.addAll(c2);//将c2元素放入c1中
System.out.println(c1);
System.out.println(flag);
Collection c3 = new ArrayList();
c3.add("java");
c3.add("android");
//c3.add("windows");
/**
* boolean containsAll(Collection c)
* 判断当前集合是否包含给定集合中的所有元素
*/
boolean contains = c1.containsAll(c3);
System.out.println("全包含:"+contains);
/**
* 从c1中删除c3中的元素
*/
c1.removeAll(c3);//removeAll()方法中参数为集合对象
System.out.println(c1);
}
}