List集合特有方法
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
         add(index,element);在指定位置添加元素
         addAll(index,Collection);
         remove(index);         删除指定位置的元素
         set(index,element);          修改元素
         get(index):        通过角标获取元素
         subList(from,to);
         listIterator();   特有迭代器,可对集合进行操作
         intindexOf(obj):       获取指定元素的位置。
         ListIteratorlistIterator();
 
List集合特有的迭代器。ListIterator是Iterator的子接口。
 
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException异常。
所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。
 
该接口只能通过List集合的listIterator方法获取。
Vector
特有的取出方式:枚举(io中有用到)与迭代器一样。
Enumeration<E> elements()
         返回此向量的组件的枚举。
Enumeration en = v.elements();
                   while(en.hasMoreElements())
                   {
                            System.out.println(en.nextElement());
                   }
LinkedList:特有方法:
void addFirst();         addLast();
添加元素
getFirst();                   getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst(); removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
 
在JDK1.6出现了替代方法。
boolean offerFirst();         offerLast();
添加元素
peekFirst();       peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst();         pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。
堆栈数据结构 :先进后出,FirstIn Last Out -- FILO如同杯子。
队列数据结构 :先进先出,FirstIn First Out -- FIFO如同水管。
List集合
判断元素是否相同,依据是元素的equals方法。
contains()与remove()方法底层调用的是equals。
Set集合
Set集合的功能与Collection是一致的。
HashSet集合
如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true;如果元素的hashcode值不同,不会调用equals。
 
注意,对于HashSet集合判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
TreeSet集合
保证元素唯一性的依据:compareTo方法return 0.
compareTo方法return 正数,元素向后放;compareTo方法return 负数,元素向前放。
用该方法直接return正数或负数,来完成集合元素的正序或逆序。
 
TreeSet排序的第一种方式:
让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。也种方式也成为元素的自然顺序,或者叫做默认顺序。
 
TreeSet排序的第二种方式:。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。在集合初始化时,就有了比较方式(传入比较器)。
当两种方式都存在时,以比较器为主。
如何定义比较器?
         定义一个类,实现Comparator接口,覆盖compare方法

AJPFX总结Collection集合(下)的更多相关文章

  1. AJPFX总结Collection集合(上)

    出现集合类的原因 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一个方式. 数组和集合都是容器有何不同? 数组虽也可存储对象,但长度 ...

  2. AJPFX关于Collection 集合的表述

    集合的遍历class Demo_Collection{     public static void main(String[] args){          Collection c = new ...

  3. Collection集合的功能及总结

    Collection集合是集合顶层接口,不能实例化 功能 1.添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个 ...

  4. Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

    首先,我们先看一下Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和 ...

  5. javad的Collection集合

    集合框架:★★★★★,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合 ...

  6. Java基础知识强化之集合框架笔记05:Collection集合的遍历

    1.Collection集合的遍历 Collection集合直接是不能遍历的,所以我们要间接方式才能遍历,我们知道数组Array方便实现变量,我们可以这样: 使用Object[]  toArray() ...

  7. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  8. Collection集合。

    Collection集合. java.util.Collection 接口. 没有索引 是所有单列集合的最顶层的接口,里面定义了所有单列集合共性的方法. 任意的单列集合都可以使用Collecion接口 ...

  9. java基础33 Set集合下的HashSet集合和TreeSet集合

    单例集合体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合 ...

随机推荐

  1. 织梦DedeCMS未审核文章更新为当前时间

    对于个人站长来说,每天文章的更新量都是个巨大的问题,例如,立信CPA培训注册会计师考试网站,有时候我们去别的网站采集大量的文章,然后自己进行手工整理伪原创,但是审核的时候,时间却是采集发布的时间.一方 ...

  2. java在某个日期上添加n天的方法实现

    //得到添加n天后的时间字符串 public String getAddDate(Date date,int n){ //格式转换 SimpleDateFormat sdf = new SimpleD ...

  3. Oracle备份与恢复:冷备份恢复

    模拟数据库数据文件丢失的情况下,通过丢失之前的数据文件物理备份做恢复: 说明:数据文件丢失前一刻的所有归档日志都存在. 环境:oracle10g +rhel5 1.关闭数据库,copy system0 ...

  4. 【转载】AsyncTask用法

    在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行.在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只 ...

  5. 利用百度地图API制作房产酒店地图

    摘要: 想亲手制作一张酷讯.去哪儿.安居客.链接地产那样的房产.酒店地图麼?那赶快来学习吧.(以酷讯为例,如下图) 更多成功案例请点击:http://dev.baidu.com/wiki/map/in ...

  6. I.MX6 AW-NB177NF WIFI 驱动移植问题

    /******************************************************************************** * I.MX6 AW-NB177NF ...

  7. printf(“%06d\n”,x);

    %06d : %是格式化输入接受参数的标记 0格式化命令:结果将用零来填充 6:填充位数 d:代表十进制 数据 printf(“%06d\n”,x); console: 000001 000002 0 ...

  8. git提交历史不显示自己账户的问题

    其实这个问题本身也不大好描述.还是上图好了 问题就如同途中倒数第二次提交.明明就是我提交的,却不显示我的账号.个人页面也不反映这次提交.   后来发现问题所在,要想正确显示,必须要把对这个项目的邮箱设 ...

  9. 《高性能iOS 应用开发》之降低你 APP 的电量消耗

    在编写高性能 代码时, 电量消耗是一个需要重点处理的重要因素, 就执行时间和 CPU 资源的利用而言, 我们不仅要实现高效的数据结构和算法, 还需要考虑其他的因素,如果某个应用是个电池黑洞,那么一定不 ...

  10. C++开发工程师面试题库 50~100道

    51. New delete 与malloc free 的联系与区别?答案:都是在堆(heap)上进行动态的内存操作.用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对 ...