NO 方法名称 描述
1 public boolean add(E e) 向集合中保存数据
2 public void clear() 清空集合
3 public boolean contains(Object o) 查询集合之中是否有指定对象 ,该方法需要equals()方法支持
4 containsAll(Collection<?> c)  
5 boolean remove(Object o)  
6 boolean removeAll(Collection<?> c)  
7 boolean isEmpty()  
8 int size()  
9 Object[] toArray()  
10 Iterator<E> iterator() 为iterator接口实例化 

   在以上所给方法中使用最多的是add() 和 iterator()两个方法。其他方法使用较少。

   开发中大部分不会去直接使用Collection 而是使用Collection下的两个接口:List(允许重复) Set(不允许重复)

  1. 允许重复的子接口:List(80%只用他)
  • List对Collection所作的扩充主要有:
NO 方法名称 描述
E get(int index) 取得指定位置的对象
2

E set(int index,E element)

 
3 ListIterator<E> listIterator() 为listIterator实例化

    接口完成后一定要使用子类,而常用的两个子类是:ArrayList  Vector

    ArrayList使用(90%)

  • import java.util.ArrayList;
    import java.util.List;
    public class ArrayListDemo {
    public static void main(String[] args) {
    List<String> list=new ArrayList<String>();
    list.add("hello");
    list.add("hello");
    list.add("world!");
    System.out.println(list);
    }
    }

    注意上面的代码可以使用get()方法循环输出。

   以上代码使用的都是String类进行操作,下面使用自定义类进行操作(注意在自己定义的类中一定要重写equals()方法)。 

  • import java.util.ArrayList;
    import java.util.List;
    import com.sun.org.apache.bcel.internal.generic.NEW;
    class Person{
    private String name;
    private int age;
    public Person(String name,int age) {
    // TODO Auto-generated constructor stub
    this.name=name;
    this.age=age;
    }
    public String toString(){
    return "姓名:"+name+",年龄:"+age+"\n";
    }
    public boolean equals(Object obj){
    if(obj==null) return false;
    if(!(obj instanceof Person)) return false;
    if(this==obj) return true;
    Person per=(Person)obj;
    if(this.name.equals(per.name)&&this.age==per.age)
    return true;
    return false;
    }
    }
    public class ArrayListDemo {
    public static void main(String[] args) {
    List<Person> list=new ArrayList<Person>();
    list.add(new Person("张三", 20));
    list.add(new Person("李四", 21));
    list.add(new Person("王五", 23));
    System.out.println(list.contains(new Person("王五", 23)));
    list.remove(new Person("李四", 21));
    System.out.println(list);
    }
    }
   旧的子类Vector,开发并不常用。
  2.  不允许重复的子接口:Set(只继承了Collection的方法,没有进行扩充)
     Set中常使用的两个子类:HashSet  TreeSet
  •   散列存放的子类:HashSet(90%)(散列即无序)
  • TreeSet 会对用户加入的数据进行排序
  •   如果用户自定义的类想要使用TreeSet进行顺序保存,必须在该类中实现java.lang.Comparable接口以区分大小。(待续)
 

java学习笔记——Collection集合接口的更多相关文章

  1. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

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

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

  3. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  4. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  5. Java学习笔记--Collection和Collections的区别

    转自 http://pengcqu.iteye.com/blog/492196 比较Collection 和Collections的区别.   1.java.util.Collection 是一个集合 ...

  6. java学习笔记之集合家族1

    集合 集合介绍: 由于数组中存放对象,对对象操作起来不方便.java中有一类容器,专门用来存储对象. 集合与数组的区别: 1.数组的长度固定的,而集合长度时可变的 2.数组只能储存同一类型的元素,而且 ...

  7. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  8. [知了堂学习笔记]_集合接口list与集合接口set的区别

    在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...

  9. Java学习笔记之——集合

    集合是类,用来存储多个数据,有属性.方法 集合是一个可变数组,保存相同元素并且长度可变 1. 体系 (1)Collection:存储一个一个的值 Iterable: Iterable<T> ...

随机推荐

  1. 汕头市队赛SRM15

    T1——czl SRM 15 众所周知,czl家养了一只可♂爱的***(已屏蔽),那只东西很贪吃,所以czl家很多零食仓库,然而这些仓库里有很多老鼠. 为了心爱的***,czl决定点燃纯艾条,用烟熏老 ...

  2. HTML中打开新页面的方法

    HTML跳转新窗口的方法 笔试遇到这样的一个问题,特意整理一下. 方法一 纯HTML <a href="http://www.cnblogs.com" target=&quo ...

  3. aiohttp/asyncio测试代理是否可用

    #!/usr/bin/env python # encoding: utf-8 from proxyPool.db import RedisClient import asyncio import a ...

  4. 我们为什么需要 lock 文件

    前言 从 Yarn 横空出世推出 lock 文件以来,已经两年多时间了,npm 也在 5.0 版本加入了类似的功能,lock 文件越来越被开发者们接收和认可.本篇文章想从前端视角探讨一下我们为什么需要 ...

  5. 更改了mysql的配置文件之后,启动不了mysql服务

    更改了mysql的配置文件之后,启动不了mysql服务 mysql数据库error: Found option without preceding group in config file 问题解决 ...

  6. 用原生javascript实现最简单的发布者-订阅者模式

    http://www.cnblogs.com/surahe/p/6065778.html 发布—订阅模式可以广泛应用于异步编程中,这是一种替代传递回调函数的方案.比如,我们可以订阅 ajax 请求的 ...

  7. DotNetCore 笔记

    最近公司框架升级到DotNetCore了,但是在用post请求的时候,发现页面的post data后台并没有接收到数据,经过调查发现,netcore用法和之前的MVC5不一样,想要接收post里的da ...

  8. 我在16ASPX下了一个系统是ACCESS和VS2005做的我想把那个连接数据库的'DB_16aspx'的名字改了进不了了可是?

    靠,在web.config或者其他配置文件中把数据库连接字符串改称你的新名字不就行了

  9. 初步接触LVS

    今天整理下思绪,定下要掌握LVS原理和使用方法.于是,看了部分关于LVS的概述和文章. 章博士在2002年写的LVS的几篇文章,在我看来,今天都值得一看.http://www.linuxvirtual ...

  10. Flash3D学习计划(二)——理解世界,取景,投影变换,并理解投影坐标系

    各种坐标系都是有用的,因为某些信息只能在特定场景中才有意义. 一. 世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架.这就意味着,能够用世界坐标系描述其他坐标系的位置, ...