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);
- JAVA集合-List集合
- Java集合----List集合
- java集合------List集合总结
- Java集合之List集合
- Java集合—List集合
- java 集合 list
- java集合----------List
- java------集合List
- JAVA集合之List
- Java中的List集合
- java 操作list集合
- Java集合List接口
- Java List集合操作
- JAVA集合框架-List
- Java集合<二>List
- Java集合之List
- java的list集合
- Java集合之List
- WEB-INF classes为空(未编译)的解决办法
- Java连接oracle数据库并进行测试
- leetCode-Search in Rotated Sorted Array II
- 反射抽取的点
- Java中static变量作用和用法详解
- java集合 list
- Qt 在Windows下的安装
- 责任链模式
- 源码分析commitAllowingStateLoss() 和commit()的区别(挑重点去知道)
- Windbg调试新手入门
- leetcode 234. Palindrome Linked List
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
- 面向对象原则:高内聚、低耦合。多聚合、少继承
- POI所需jar包