集合类的由来:
  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
集合特点:
  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. iOS 获取self类型

    类型转换快速写法 typeof(self) bself = self; 版权声明:本文为博主原创文章,未经博主允许不得转载.

  2. 探索Redis设计与实现15:Redis分布式锁进化史

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...

  3. Toast 使用方法大全

    原文地址:http://daikainan.iteye.com/blog/1405575 Toast 是一个 View 视图,快速的为用户显示少量的信息. Toast 在应用程序上浮动显示信息给用户, ...

  4. 启发式分治:2019牛客多校第三场 G题 Removing Stones

    问题可以转换为求有多少个区间数字的总和除2向下取整大于等于最大值.或者解释为有多少个区间数字的总和大于等于最大值的两倍(但是若区间数字总和为奇数,需要算作减1) 启发式分治: 首先按最大值位置分治,遍 ...

  5. js调用ios和安卓方法

    安卓: window.AndroidWebView.方法名(参数); window.AndroidWebView.productDetail(1989); ios: function isbrowse ...

  6. mybatis中Parameter index out of range (2 > number of parameters, which is 1).

    ${name} 是不带单引号的,而#{name} 是带单引号的

  7. Java + selenium 启动谷歌浏览器

    在之前创建的test项目下建一个test包,然后在包下建一个Chrome.java类.写入如下代码 package test; import java.util.concurrent.TimeUnit ...

  8. day 62.3 Django基础八之cookie和session

    Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx ...

  9. 几个比较好的IT站和开发库官网

    1.IT技术.项目类网站 (1)首推CodeProject,一个国外的IT网站,官网地址为:http://www.codeproject.com,这个网站为程序开发者提供了很好的代码示例以及讲解,不过 ...

  10. python+tushare获取沪深港股通持股明细

    接口:hk_hold 描述:获取沪深港股通持股明细,数据来源港交所. 限量:单次最多提取3800条记录,可循环调取,总量不限制 积分:用户积120积分可调取试用,2000积分可正常使用,单位分钟有流控 ...