集合类的由来:
  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
集合特点:
  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. Hive 时间操作函数(转)

    1.日期函数UNIX时间戳转日期函数: from_unixtime 语法:   from_unixtime(bigint unixtime[, string format]) 返回值: string ...

  2. 用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 SQLAlchemy 的 CRUD Create 增添数据 ...

  3. RHEL6.1 安装 Oracle10gr2 (图文、解析)

    目录 目录 软件环境 前言 初始化RHEL61 硬件检测 预安装软件包 安装oratoolkit 创建Oracle用户 修改配置文件 系统版本伪装 解压并运行Oracle10gr2安装包 安装rlwr ...

  4. python模块学习之testlink (自动回写测试案例执行结果到testlink)

    安装 pip install TestLink-API-Python-client #!/usr/bin/env Python # -*- coding: utf-8 -*- ''' Created ...

  5. 20. Cookie 和 Session

    之前我们在Cookie 和Session是什么?已经说过Cookie 和Session,但是为了保证系列的完整性,我们决定重新说一遍,当然可能会有一些区别,建议先从Cookie 和Session是什么 ...

  6. upc组队赛12 Janitor Troubles【求最大四边形面积】

    Janitor Troubles Problem Description While working a night shift at the university as a janitor, you ...

  7. Leetcode代码复盘_动态规划

    动态规划中包含3个重要的概念: 1.最优子结构 2.边界 3.状态转移公式 以跳台阶为例,最优子结构为f(10)=f(9) + f(8),边界是f(1)=1, f(2)=2,状态转移公式f(n)=f( ...

  8. Spring Data JPA one to one 共享主键关联

    /** * Created by xiezhiyan on 17-9-13. */@Entitypublic class Token { @Id @Column(name = "store_ ...

  9. python获取沪股通、深股通、港股通每日资金流向数据

    接口:moneyflow_hsgt 描述:获取沪股通.深股通.港股通每日资金流向数据,每次最多返回300条记录,总量不限制. 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称  ...

  10. if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思?

    if (user?.Identity?.IsAuthenticated ?? false)这几个问号分别都代表啥意思? 0 悬赏园豆:5 [已解决问题] 浏览: 229次 解决于 2018-05-16 ...