加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java中list的用法

(2013-05-19 13:39:30)
标签:

it

[转]原文转载,不好意思原文地址忘了,但是还是要谢谢以前的那位博主。你的总结让我侧地领悟了集合的相关概念和用法。今天把原文贴在这里不是要盗用的知识版权,只是自己写在这里方便以后温习。

上次听学长给我讲东西,觉得学长理解的好透彻,而自己却自以为是的以为知道,原来自己根本没有真正的理解,所以决定每天都学些东西,整理出来,然后变为自己的东西,一定要坚持下去哦。

import java.util.ArrayList;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

import java.util.ListIterator;

import java.util.Stack;

import java.util.Vector;


 

public class Lession6 {


  public static void main(String[] args) {

   // 下面是List里面常用的实现类


   // 大小可变列表的实现,允许任何数据加入

   ArrayList arrayList new ArrayList();


   // 同样是大小可变列表的实现.

   // ArrayList的最大区别就是这个类的方法是同步(synchronized)

   // 详细的区别,请参考

   // 看源代码理解ArrayListVector 的真正区别

   // http://www.java2000.net/p9750

   Vector vector new Vector();


   // 实现了双向队列的控制,包括头尾的操作

   // 可用于堆栈和FIFO操作等

   LinkedList linkedList new LinkedList();


   // 集成自 Vector

   // 提供了LIFO的堆栈操作方式

   Stack stack new Stack();


   // -----------------

   // 下面以ArrayList作为例子,看看列表的各个方法

   List list new ArrayList();

   // 构建第二个列表

   List list2 new ArrayList();


   // 向列表的尾部添加指定的数据

   list.add(123);


   // 在列表的指定位置插入指定数据

   // 我们在最前面插入数据

   // 列表的位置索引从0开始

   list.add(0, 456);


   // list2里面的数据,全部放到list1的尾部去

   // 注意此处可以是任何集合类,不限于列表

   list.addAll(list2);


   // list2里面的数据,全部放到list1指定位置的后面

   // 等于插入一段数据

   list.addAll(2, list2);


   // 清空列表,删除里面所有的数据

   list.clear();


   // 判断列表里是否包含某个数据

   boolean found list.contains(123);


   // 判断列表是否包含了另一个集合的所有数据

   // 注意此处可以是任何集合类,不限于列表

   boolean ok list.containsAll(list2);


   // 获得指定位置的数据

   // 如果位置超过了列表的范围 到 list.size()-1

   // 则抛出异常:IndexOutOfBoundsException

   Object obj list.get(3);


   // 得到数据在列表中的位置

   // 如果没找到,返回-1

   // 位置索引从0开始

   int index list.indexOf(456);


   // 判断列表是不是空的

   boolean empty list.isEmpty();


   // 列表的迭代器操作

   // 顺序严格按照列表的保存的顺序

   Iterator it list.iterator();


   // 得到数据在列表最后一次出现的位置

   // 适合于有重复数据的列表

   index list.lastIndexOf(456);


   // 列表的另一个迭代器

   ListIterator listIT list.listIterator();


   // 列表的另一个迭代器,可以指定起始位置

   ListIterator listIT2 list.listIterator(3);


   // 删除某个位置的数据

   list.remove(3);


   // 删除指定对象的第一个出现的位置

   // 注意,如果是整数,要区分其与remove(int)的区别

   // 建议用 remove(new Integer(123)); 来删除数据对象

   list.remove(new Integer(123));


   // 删除列表里在另一个集合里存在的数据

   list.removeAll(list2);


   // 只保留在另一个集合里存在的数据,等于交集

   list.retainAll(list2);


   // 替换指定位置的数据

   list.set(3, 999);


   // 列表数据的数量

   int size list.size();


   // 得到一个子数组

   List subList list.subList(2, 10);


   // 将集合转化为数组

   Object[] objs list.toArray();


   // 将集合转化为指定格式的数组

   // 比如集合里保存的都是String

   String[] objs2 (String[]) list.toArray(new String[0]);

  }

}

总结:


实际上我们最常用的还是 ArrayList, Vector因为是同步方法,只有在多线程,以及 全局的数据时,我才考虑用。

 

0

阅读 收藏 喜欢 打印举报/Report
后一篇:HashSet散列表
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有