集合复习1

本文深入探讨了Java集合框架,包括Collection接口及其子接口List和Set。通过实例展示了如何添加、删除、检查元素,以及集合间的交互操作如取交集、并集和差集。此外,还解释了集合只能保存元素引用以及元素重复性的判断原则。
摘要由CSDN通过智能技术生成

集合:可以保存一组元素

java.util.Collection接口。Collection是所有集合的顶级接口,里面规定了所有集合都应当具备的操作。

常见的两个子接口:

java.util.List:可重复集且有序。

java.util.Set:不可重复集。

重复指元素是否允许存放重复元素,重复的判断是更具元素自身的equals方法决定的。

Collection c = new ArrayList();

c.add("one");//向集合中存放一个元素、boolean add(E e)添加成功返回值为true

int size = c.size();//返回当前集合的元素个数

boolean isEmpty = c.isEmpty();//判断是否为一个空元素

c.clear();//void clear()、清空集合

contains:包含

remove:删除

Collection c = new ArrayList();

c.add(new Point(1,2));
c.add(new Point(1,2));
c.add(new Point(3,4));
/*
    集合重写了toString方法。格式为:
    元素1.toString(),元素2.toString(),.....
*/

Point p = new Point(1,2);//Point类重写了toString和equals方法。

/*
    boolean contions(Object o)判断当前集合是否包含给定元素
    判断依据是该元素是否与集合现有元素存在equals方法比较为true
    的情况,存在即包含。
*/
bollean contains = c.contains(p);

c.remove(p);//删除元素也是删除equals比较为true的元素,对于List而言,重复元素只会删除一次。

集合只能保存引用元素,保存的是元素的引用(地址)

Point p = new Point(1,2);
Collection c = new ArrayList();
c.add(p);
System.out.println("p:"+p);//(1,2)
System.out.println("c:"+c);//[(1,2)]

p.setX(2);

System.out.println("p:"+p);//(2,2)
System.out.println("c:"+c);//[(2,2)]

集合之间的操作

 Collection c1 = new ArrayList();
 c1.add("java");
 c1.add("c++");
 c1.add(".net");
 c1.add("android");

 Collection c2 = new HashSet();
 c2.add("android");
 c2.add("ios");

 /*
    boolean addAll(Collection c)
    将给定集合中所有元素添加到当前元素中。添加后当前集合发生了改变则返回true。
  */
 
 c2.addAll(c1);
 System.out.println("c1:"+c1);//[java, c++, .net, android]
 System.out.println("c2:"+c2);//[c++, java, android, .net, ios]

 Collection c3 = new ArrayList();
 c3.add("java");
 c3.add("ios");
 c3.add("php");

 /*
    boolean containsAll(Collection c)
    判断当前集合是否包含给定集合中的所有元素,全部包含则返回true。
  */
 
 boolean contains = c2.containsAll(c3);
 System.out.println("包含所有:"+contains);//包含所有:false

 /*
     取交际,仅保留当前集合中与给定集合的共有元素。
  */
 c2.retainAll(c3);

 /*
     删交际,将当前集合中与给定集合的共有元素删除
  */
  
  c2.removeAll(c3);
  System.out.println("c2:"+c2);//[c++, android, .net]
  System.out.println("c3:"+c3);//[java, ios, php]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值