码迷,mamicode.com
首页 > 其他好文 > 详细

集合操作--线性表

时间:2016-02-19 21:53:07      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

1.ArrayList和LinkedList
  List接口是Collection的子接口,用于定义线性表数据结构。
    可以将List理解为存放对象的数组,只不过其元素个数可以动态的增加或减少。
  List接口的两个常见实现类为ArrayList和LinkedList,分别用动态数组和链表的方式实现了List接口
  可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别。
    ArrayList更适合于随机访问而LinkedList更适合于插入和删除。
    在性能要求不是特别苛刻的情形下可以忽略这个差别。
2.get和set
  List除了继承Collection定义的方法外,还根据其线性表的数据结构定义了一系列方法,其中最常用的就是基于下标的get和set方法:
    E get(int index)
      获取集合中指定下标对应的元素,下标从0开始。
    E set(int index,E elment)
      将给定元素存入给定位置,并将原位置的元素返回
3.插入和删除
  List根据下标的操作还支持插入与删除操作。
    void add(int index,E element)
      将给定的元素插入到指定位置,原位置及后续元素都顺序向后移动。
    E remove(int index):
      删除给定位置的元素,并将被删除的元素返回。
4.subList
  List的subList方法用于获取子List.
  需要注意的是,subList获取的List与原List占有相同的存储空间,对子List的操作会影响原List。
    List<E> subList(int fromIndex,int toIndex);
      fromIndex和toIndex是截取子List的首尾下标(前包括,后不包括)
5.List转换为数组
  List的toArray方法用于将集合转换为数组。但实际上该方法是在Collection中定义的,所以所有的集合都具备这个功能。
  其有两个方法:
    Object[] toArray()
    <T> T[] toArray(T[] a)
  其中第二个方法是比较常用的,我们可以传入一个指定类型的数组,该数组的元素类型应与集合的元素类型一致。
    返回值则是转换后的数组,该数组会保存集合中所有的元素。
6.数组转换为List
  Arrays类中提供了一个静态方法asList,使用该方法我们可以将一个数组转换为对应的List集合。
  其方法定义为:
    static <T> List<T> asList<T...a>
  返回的List的集合元素类型由传入的数组元素类型决定。
  并且要注意的是,返回的集合我们不能对其增删元素,否则会抛出异常。并且对集合的元素进行修改会影响数组对应的元素。
7.Collections.sort方法实现排序
  Collections是集合的工具类,它提供了很多便于我们操作集合的方法,其中就有用于集合排序的sort方法。
  该方法定义为:
    void sort(List<T> list)
    该方法的作用是对给定的集合元素进行自然排序。
8.Comparable
  Collection的sort方法是对集合元素进行自然排序,那么两个元素对象之间就一定要有大小之分。这个大小之分是如何界定的?
    实际上,在使用Collection的sort排序的集合元素都必须是Comparable接口的实现类,该接口表示其子类是可比较的,
    因为实现该接口必须重写抽象方法:
      int compareTo(T t);
  该方法用于使当前对象与给定对象进行比较。
    若当前对象大于给定对象,那么返回值应为>0的整数。
    若小于给定对象,那么返回值应为<0的整数。
    若两个对象相等,则返回0
9.Comparator
  一旦Java类实现了Comparable接口,其比较逻辑就已经确定;
    如果希望在排序的操作中临时指定比较规则,可以采用Comparator接口回调的方式。
  Comparator接口要求实现类必须重写其定义的方法:
    int compare(T o1,T o2)
  该方法的返回值要求:
    若o1>o2则返回值应>0
    若o1<o2则返回值应<0
    若o1=o2则返回值应为0

集合操作--线性表

标签:

原文地址:http://www.cnblogs.com/Crow0/p/5202183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!