1.Collection 接口

(1)Collection的超级接口是Iterable

(2)Collection常用的子对象有:Map、List、Set、Queue。

右图中实现黑框的ArrayList、LinkedList、HashSet、HashMap是常用的具体对象。注:实际类图与右图存在一些差异。

Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。(面向接口的编程思想)

2.Collection 常用方法

(1)添加

boolean add(Object obj);一次添加一个。
boolean addAll(Collection c);将制定容器中的所有元素。

(2)删除

void clear();
boolean remove(object o)
boolean removeAll(Collection c):
boolean retainAll(Collection c);

(3)获取长度 int size()
(4)判断

boolean isEmpty():是否为空
boolean contains(Object o) :包含
boolean containsAll(Collection c) :包含

(5)将集合转成数组

toArray();
toArray([]);

(6)取出集合元素

Iterator iterator()
获取集合中元素上迭代功能的迭代器对象。

迭代器:具备着迭代功能的对象。
而迭代器对象不需要new。直接通过 iterator()方法获取即可。
迭代器是取出Collection集合中元素的公共方法。

 public class CollectionDemo {

 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {

 		Collection coll = new ArrayList();
 //		methodDemo(coll);

 		methodAllDemo();
 	}

 	/*
 	 * 演示带All的方法。
 	 */
 	public static void methodAllDemo(){

 		//1,创建两个容器。
 		Collection c1 = new ArrayList();
 		Collection c2 = new ArrayList();

 		//2,添加元素。
 		c1.add("abc1");
 		c1.add("abc2");
 		c1.add("abc3");
 		c1.add("abc4");

 		c2.add("abc22");
 		c2.add("abc33");
 		c2.add("abc5");

 		//往c1中添加c2.
 //		c1.addAll(c2);

 		//判断c1中是否包含c2中的所有元素。
 //		boolean b = c1.containsAll(c2);
 //		System.out.println("b="+b);

 		//从c1中删除c2.
 //		c1.removeAll(c2);//将c1中和c2相同的元素从c1中删除。

 		c1.retainAll(c2);//将c1中和c2不同的元素从c1中删除。保留c1中和c2相同的元素。
 		System.out.println(c1);

 	}

 	/*
 	 * 演示Collection中的基本功能。
 	 */
 	public static void methodDemo(Collection coll){

 		//1,添加元素。
 		coll.add("abc1");
 		coll.add("abc2");
 		coll.add("abc3");

 		//2,删除。
 //		coll.remove("abc2");会改变集合的长度。

 		//3,清除。
 //		coll.clear();

 		//4,包含。
 		System.out.println("contains:"+coll.contains("abc1"));

 		System.out.println(coll);

 	}

 }
 

2018-01-04

内容来自传智播客和java编程思想

最新文章

  1. Python爬虫小白入门(三)BeautifulSoup库
  2. 【分布式】Zookeeper与Paxos
  3. 修改NavigationView中的Item的Icon大小
  4. 【转载】查看freebsd 服务器硬件信息
  5. JavaWeb学习笔记——JavaBean的保存范围和删除
  6. [Tips] JavaScript 使用hash 对象传参
  7. linux 7 常见命令
  8. Unicode : RLO
  9. 随机分类器的ROC和Precision-recall曲线
  10. Linux档案与目录的管理
  11. 向左对齐的Gallery
  12. Android开发UI之开源项目第一篇——个性化控件(View)篇
  13. Problem B: Excuses, Excuses!
  14. iOS 打印日志的保存 (一)
  15. offset / scroll / client Left / Top
  16. C#-泛型类型(十六)
  17. ng 的 ng-repeat(对象) 把对象的 key 和value 都拿出来 循环
  18. hostapd 和 wap_supplicant
  19. 第7课 Qt中的坐标系统
  20. 7.25 9figting!

热门文章

  1. bzoj3173
  2. KinFu --- KinectFusion的开源实现
  3. x64 win64编译环境下ADO链接Access数据库的问题解决
  4. A2W W2A等所需要的文件
  5. Linux内核设计第一周学习总结 计算机如何工作
  6. 代码收藏系列--javascript--日期函数
  7. bzoj2621: [Usaco2012 Mar]Cows in a Skyscraper(状压DP)
  8. 【loj2639】[Tjoi2017]不勤劳的图书管理员
  9. 排座位&&Little Elephant And Permutation——排列dp的处理
  10. 图论&数学:最小平均值环