集合中List和Set
2016-01-04 01:09
429 查看
Collection接口有两个子接口: List(列表),Set(集)
List集合中常用的类
集合框架-List集合的常见方法
集合框架-ListIterator接口
Collection
List:可存放重复元素,元素存取是有序的。 Set:不可以存放重复元素,元素存取是无序 的
List集合中常用的类
Vector:线程安全,但速度慢,已被 ArrayList 替代。 ArrayList:线程不安全,查询速度快。 LinkedList:链表结构,增删速度快。 取出LIst集合中元素的方式: get(int index)通过脚标获取元素。 iterator():通过迭代方法获取迭代器对象
集合框架-List集合的常见方法
public class Collection08_1 { public static void main(String[] args) { List list1=new ArrayList(); show(list1); } private static void show(List list) { //添加元素 list.add("abc1"); list.add("abc2"); list.add("abc3"); System.out.println(list); //插入元素 list.add(1,"abc9"); System.out.println(list); //修改元素 System.out.println("set:"+list.set(1,"abc7")); //返回被修改的元素 System.out.println(list); //获取子列表 System.out.println("sublist:"+list.subList(1, 2));//包含1,不包含2 System.out.println(list); } }
集合框架-ListIterator接口
public class Collection09_1 { public static void main(String[] args) { List list=new ArrayList(); // show(list); list.add("abc1"); list.add("abc2"); list.add("abc3"); ListIterator it=list.listIterator(); ////获取列表迭代器对象 //它可以实现在迭代过程中完成对元素的增删改查 //只有list集合具备该功能 while(it.hasNext()){ Object obj=it.next(); if(obj.equals("abc2")){ it.add("abc9"); }else{ System.out.println(list); } } System.out.println("previous:"+it.previous()); /* Iterator it=list.iterator(); while(it.hasNext()){ Object obj=it.next(); //java.util.ConcurrentModificationException if(obj.equals("abc2")){ list.add("abc9"); }else{ System.out.println("next:"+obj); } } System.out.println(list); //在迭代器过程中,不要使用集合操作元素,容易报异常 //可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作 */ } private static void show(List list) { list.add("abc1"); list.add("abc2"); list.add("abc3"); list.add("abc4"); Iterator it=list.iterator(); while(it.hasNext()){ System.out.println("next:"+it.next()); } //list的特有取去方式元素的方式之一 for(int x=0;x<list.size();x++){ System.out.println("get:"+list.get(x)); } } }
Collection
|--List:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。 |--Set:元素不可以重复,无序。 List:特有的常见方法:有一个共性特点就是都可以操作角标。 1.添加 void add(index,element); void add(index,collection); 2.删除 Object remove(index); 3.修改 Object set(index,element); 4.获取 Object get(index); int indexOf(object); int lastIndexOf(object); List subList(from,to); List集合是可以完成对元素的增删改查。 List: |--Vector:内部是数据数据结构,是同步的。增删,查询都很慢 |--ArrayList:内部是数据数据结构,是不同步的。替代了Vector。查询的速度快。 |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度非常快。 LinkedList: addFirst(); addLast(); jdk1.6 offerFirst(); offerLast(); getFirst();//获取但不移除,如果链表为空,抛出NoSuchElementException getLast(); jdk1.6 peekFirst;//获取但不移除,如果链表为空,返回null. removeLast(); jdk1.6 pollFirst();//获取并移除,如果链表为空,返回null. pooLast();
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树