集合类的由来:
  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
集合特点:
  1、用于存储对象的容器
  2、集合长度可变
  3、不可以存储基本数据类型
集合体系的顶层Collection接口
Collection接口
  |--List:有序(存入和取出的顺序一致),元素都是索引,元素可以重复
    |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢(已几乎不用)
    |--ArrayList:内部是数组数据结构,是不同步的。替代Vector。查询速度快
    |--LinkedList:内部是链接列表数据结构,是不同步的。增删元素的速度很快。
  |--Set:元素不能重复,是无序
    Set接口中的方法和Collection一致
    |--HashSet:内部数据结构是哈希表,是不同步的。
      |--LinkedHashSet:内部数据结构是哈希表和链接列表,简单说就是有序的HashSet
    |--TreeSet:内部数据结构是二叉树,是不同步的。
常见方法:
  1、添加
    boolean add(E e);
    boolean addAll(collection<? extends E> c);
  2、删除
    boolean remove(object o);
    boolean removeAll(collection<?> c);//将两个集合中的相同元素从调用removeAll的集合中删除
     void clear();//清空
  3、判断
    boolean contains(object o);
    boolean containsAll(collection<?> c);//是否全部包含c集合中的元素
    boolean isEmpty();//判断集合中是否有元素
  4、获取
     int size();
     iterator<E> iterator();//迭代器,取出元素的方式
 
  5、其他
    boolean retainAll(collection<?> c);取交集
    Object[] toArray();//将集合转成数组
 import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class CollectionDemo { public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
/*
* 注释快捷键:ctrl+/ 单行注释 shift+ctrl+/ 多行注释 alt+shift+j 文档注释
*/
/*
* Iterator it=coll.iterator(); while(it.hasNext()) {
* System.out.println(it.next()); }
*/
// 用for循环释放资源
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
} Collection coll2 = new ArrayList();
coll2.add("abc1");
coll2.add("abc2");
coll2.add("abc5"); System.out.println("====================retainAll===============");
System.out.println(coll.retainAll(coll2));
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
coll.clear();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4"); Collection coll3 = new ArrayList();
coll3.add("abc1");
coll3.add("abc3");
coll3.add("abc5"); System.out.println("====================removeAll===============");
System.out.println(coll.removeAll(coll3)); for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
}
}

结果:

Java学习之集合(Collection接口)的更多相关文章

  1. Java中的集合Collection接口

    /* 集合:集合是存储对象数据的集合容器.集合比数组的优势: 1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据. 2. 集合的长度是会发生变化的,数组的长度是固定的.----- ...

  2. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  3. Java学习:集合双列Map

    数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过 ...

  4. Java学习笔记之---比较接口与抽象类

    Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...

  5. Java学习关于集合框架的基础接口--Collection接口

     集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...

  6. Java 集合-Collection接口和迭代器的实现

    2017-10-30 00:30:48 Collection接口 Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 c ...

  7. 5.1 java类集(java学习笔记)Collection、List接口及ArrayList、LinkedList类。

    一.类集 类集就是一组动态的对象数组,说类集可能不好理解,类集又称容器,容器顾名思义就是放东西的地方. 类集就是为了让我们更加简洁,方便的存放.修改.使用数据的. 二.Collection接口 我们看 ...

  8. JAVA集合--Collection接口

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     在概述里面也说过:Collection是jav ...

  9. java集合Collection接口

    collection集合 Map集合 Hashtable和HashMap的区别: Hashtable的方法是同步的,而HashMap的方法不是.HashMap可以将空值作为一个表的条目的key或val ...

随机推荐

  1. UVa455 最小周期串问题

    A character string is said to have period k if it can be formed by concatenating one or more repetit ...

  2. php下载

    生成迅雷下载链接 $url = "http://www.xxx.com/xxx/test.jpg"; echo "thunder://".base64_enco ...

  3. oracle 中和mysql的group_concat有同样作用的写法

    所有版本的oracle都可以使用select wm_concat(name) as name from user;但如果是oracle11g,使用select listagg(name, ',') w ...

  4. Execute Unix Command via Putty_QTP

    plink_path = "C:/plink.exe"     'plink.exe 路径 username = "username"       '用户名 p ...

  5. 05、python的基础-->字典的增、删、改、查

    1.字典的增 dict = {'age':19,'name':'老王','hobby':'girl'} dict['sex'] = 'boy' #没有键值对,直接添加 dict[' #有键值对,覆盖值 ...

  6. gitlab+gitlab-ci+docker自动化部署

    导言 本次测试用的是gitlab-ci,单纯与gitlab搭配而言,gitlab-ci较jenkins更加一体,顺畅. 主机1:192.168.100.151 gitlab 主机2:192.168.1 ...

  7. python面试题之如何用Python找出你目前在哪个目录?

    >>> import os >>> os.getcwd() 'C:\Users\lifei\AppData\Local\Programs\Python\Python ...

  8. [USACO10MAR]伟大的奶牛聚集Great Cow Gat…

    题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...

  9. 【目录】Asp.NETCore轻松学系列

    随笔分类 - Asp.NETCore轻松学系列 Asp.NETCore轻松学系列阅读指引目录 摘要: 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进 ...

  10. BUUCTF PWN部分题目wp

    pwn好难啊 PWN 1,连上就有flag的pwnnc buuoj.cn 6000得到flag 2,RIP覆盖一下用ida分析一下,发现已有了system,只需覆盖RIP为fun()的地址,用peda ...