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集合中元素的公共方法。

  1. public class CollectionDemo {
  2.  
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7.  
  8. Collection coll = new ArrayList();
  9. // methodDemo(coll);
  10.  
  11. methodAllDemo();
  12. }
  13.  
  14. /*
  15. * 演示带All的方法。
  16. */
  17. public static void methodAllDemo(){
  18.  
  19. //1,创建两个容器。
  20. Collection c1 = new ArrayList();
  21. Collection c2 = new ArrayList();
  22.  
  23. //2,添加元素。
  24. c1.add("abc1");
  25. c1.add("abc2");
  26. c1.add("abc3");
  27. c1.add("abc4");
  28.  
  29. c2.add("abc22");
  30. c2.add("abc33");
  31. c2.add("abc5");
  32.  
  33. //往c1中添加c2.
  34. // c1.addAll(c2);
  35.  
  36. //判断c1中是否包含c2中的所有元素。
  37. // boolean b = c1.containsAll(c2);
  38. // System.out.println("b="+b);
  39.  
  40. //从c1中删除c2.
  41. // c1.removeAll(c2);//将c1中和c2相同的元素从c1中删除。
  42.  
  43. c1.retainAll(c2);//将c1中和c2不同的元素从c1中删除。保留c1中和c2相同的元素。
  44. System.out.println(c1);
  45.  
  46. }
  47.  
  48. /*
  49. * 演示Collection中的基本功能。
  50. */
  51. public static void methodDemo(Collection coll){
  52.  
  53. //1,添加元素。
  54. coll.add("abc1");
  55. coll.add("abc2");
  56. coll.add("abc3");
  57.  
  58. //2,删除。
  59. // coll.remove("abc2");会改变集合的长度。
  60.  
  61. //3,清除。
  62. // coll.clear();
  63.  
  64. //4,包含。
  65. System.out.println("contains:"+coll.contains("abc1"));
  66.  
  67. System.out.println(coll);
  68.  
  69. }
  70.  
  71. }

2018-01-04

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

Java容器---Collection接口中的共有方法的更多相关文章

  1. java容器——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  2. Collection接口中的方法的使用

    add(Object e):将元素e添加到集合coll中size():获取添加的元素的个数addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中clear():清 ...

  3. Collection接口中方法的使用

    Collection:集合的接口 1.Collection和ArrayList和List的关系 ArrayList      implement(实现)       List List        ...

  4. Java 8 接口中的默认方法与静态方法

    Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...

  5. Java8接口中的默认方法

    Java8新增特性,可以为接口中添加默认方法,实现这个接口的所有类都会继承这个方法,这样看起来,接口和类的界限就有点不明显了,同时也会带来多继承,菱形问题.这样设计的初衷是什么? 重所周知,java8 ...

  6. 『Java』Collection接口 Collections类

    接口Collection public interface Collection<E>定义了所有单列集合中共性的方法,所有的单列集合都可以使用共性方法. Collection的常用子接口有 ...

  7. 纳尼,java可以在接口中实现非抽象方法了?

    纳尼,接口中可以定义实例方法了?! 纳尼,接口中还可以定义静态方法了?! 没错,在Java8中新增了很多新的特性,其中就包括可以在接口中添加方法和变量. 首先我们来看下代码 public interf ...

  8. [Day19]Collection接口中的子类(List集合、Set集合)

    1.List接口 1.1API总结 (1)是一个元素存取有序的集合 (2)是一个带有索引的集合,通过索引可以精确的操作集合中的元素 (3)集合中有可以重复的元素,通过元素的equals方法,来比较是否 ...

  9. Java8新特性Optional、接口中的默认方法与静态方法

    Optional Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念 ...

随机推荐

  1. 【基础】一个简单的MVC实例及故障排除

    Controller: public ActionResult Index() { string setting = "ApplicationServices"; var conn ...

  2. 【BZOJ5319】军训列队(主席树)

    [BZOJ5319]军训列队(主席树) 题面 BZOJ 洛谷 题解 一眼题既视感... 首先很明显,每次询问的结果显然是做一次离散. 然后直接上主席树就好了... 查询答案的方式也很简单 考虑一下那个 ...

  3. 洛谷 P2233 [HNOI2002]公交车路线 解题报告

    P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...

  4. linux系统启动自动激活网卡的解决方法

    linux每次启动的时候网卡都需要激活才能上网,实在是很麻烦. 上网找了找资料,最后是这样解决的: #   vi   /etc/sysconfig/network-scripts/ifcfg-eth0 ...

  5. Git config配置

    git获取帮助git help config git config --help man git-config   git config --global user.name "fuleyi ...

  6. dorado7常用内容

    1.dataset添加数据this.get("#dsProduct").getData().insert();或者this.get("#dsProduct"). ...

  7. Struts初探(二)

    总是找不到对应的action,但别的没用到动态方法调用的都没有问题. 报异常:java.lang.reflect.InvocationTargetException - Class: com.open ...

  8. 【mysql】测试方案整理

    http://www.cnblogs.com/callhe/ https://www.digitalocean.com/community/tutorials/how-to-measure-mysql ...

  9. HAOI2017游记

    HACF的最终成绩已经出炉,但是事情还没有结束. 好多想说的,不知道从何说起,就按照时间顺序说吧. 考前 考前大概一周半就开始复习了,一些比较重要的算法,比如KDT,单纯性,线性基等等没有再继续学,所 ...

  10. REST式的web服务

    “REST”是罗伊·菲尔丁(Roy Fielding)在他的博士论文中创造的缩写.菲尔丁论文的第5章勾画出了被称为REST风格或REST式的Web服务的知道原则.他是HTTP1.1规范的主要作者和Ap ...