java集合 list

来源:互联网 发布:程序员转正心得 编辑:程序博客网 时间:2024/06/11 17:07

集合根接口 collection

可由list 和set 实现

list 按顺序存储,有下标,可以有重复的元素

set 不按顺序存储,无下标,不可以有重复的元素

set 可由 hashset(哈希算法实现) 和treeset(二叉树实现)实现

list 可由ArrayList (数组实现), linkedList(链条实现)  ,vector(数组实现)实现

List  列表

List list = new ArrayList();

list常用方法

add ( )  向列表的尾部添加指定的元素

add (index, E element  )   在列表的指定位置插入指定元素,不可超出范围

addAll(collection)     添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序

addAll(index ,collection)      将指定 collection 中的所有元素都插入到列表中的指定位置

clear()    从列表中移除所有元素

contains()     如果列表中包含指定的元素,返回true

equals(Object o)   比较指定的对象与列表是否相等。

get(index)    返回列表中指定位置的元素

indexOf()   返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。

isEmpty () 如果列表不包含元素,则返回 true

iterator()  返回按适当顺序在列表的元素上进行迭代的迭代器

listIterrator()   返回此列表元素的列表迭代器(按适当顺序   可改变迭代长度

remove(index)  移除列表中指定位置的元素

set(int index  .element)  替换列表中指定位置元素

removeAll   从列表中移除指定 collection 中包含的其所有元素

retainAll     仅在列表中保留指定 collection 中所包含的元素

size()      返回列表中的元素数。

subList()  返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图

toArray() 返回按适当顺序包含列表中的所有元素的数组

List list = new ArrayList();list.add("a");list.add("a");list.add("a");list.add("a");list.add(4,"a");//不能越界添加//替换指定所引的元素(不能越界,不能提花能超过集合长度的索引)list.set(4, "cf");list.remove(1);System.out.println(list);System.out.println(list.get(2));for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}Iterator iterator = list.iterator();//使用迭代器遍历,next只能调用一次while(iterator.hasNext()) {System.out.println(iterator.next());}}}

Vector

Vector vector =new Vector();vector.addElement("a");vector.addElement("a");vector.addElement("a");vector.addElement("a");//遍历,特有方法Enumeration elements = vector.elements();while(elements.hasMoreElements()) {System.out.println(elements.nextElement());}

linkedlist

数组实现
 * 特点:查询快,增删慢
 * 查询依赖下标,增删把要插入位置后的所有元素先后移动一位
 * 数组创建时,默认10个位置,当要保存11个值时,系统会创建1.5倍长新数组
 * 链表实现
 * 查询慢,增删快
 * 查找时先判断查找对象距离头近还是尾近,按下标查询
 * 1,链表中元素保存了上一个与下一个元素的地址,通过这个地址可以找到上一个元素和下一个元素
 * 2,在进行查找时,先判断要查找的元素距离头近还是尾近
 * 3,例如头近,就从头位置一个个向下查找
 * 4增删时直接找到插入位置,直接保存前后一个元素地址,其余元素位置不移动

List list = new ArrayList();list.add("a");list.add("b");list.add("c");list.add("d");ListIterator iterator =list.listIterator();while(iterator.hasNext()) {if(iterator.next().equals("b")) {//不能直接使用集合添加,要用迭代器添加iterator.add("oh,yes");}//并发修改一场}   //注意:一般对集合迭代时,不要轻易改变集合长度,容易发生修改异常System.out.println(list);
//在集合中存储""a"a""a",  "b""b""b"  "c""c""c" 去除重复//新建集合,将不重复部分存入新集合ArrayList list = new ArrayList();    list.add("a");    list.add("a");    list.add("a");    list.add("b");    list.add("b");    list.add("b");    list.add("c");    list.add("c");    list.add("c");    System.out.println(list);    ArrayList List2 = new ArrayList();    Iterator iterator = list.iterator();    while(iterator.hasNext()) {    Object next = iterator.next();    if(!List2.contains(next)) {    List2.add(next);    }    }    System.out.println(List2);



原创粉丝点击