Java之list
2015-07-13 11:14
423 查看
在Java中必须掌握的东西:Collection集合这个概念,首先来看List集合。
public interface List extends Collection从这里就可以看出基本的内容了,首先List是个接口,然后是继承自Collection,而public interface Collectionextends Iterable,public interface Iterable。
1.List代表着一个有序的队列,所有就有get()的方法,实现类有四个:ArrayList,LinkedList,Vector,Stack。
ArrayList是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
LinkedList是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。
Vector是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。
Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。
当然,常用的一些方法肯定要知道,比如add,get,size,indexOf,lastIndexOf,iterator,remove等等。
List的遍历方法:
list中的数据是可以重复的,所有有时候可能用到List的去重复操作。暂时知道的有两种方法:一是使用list的contains,二是使用set来去除其中的重复项。
list与数组之间的相互转换?
list中排序问题?
Collections有一个sort方法,其实现是通过compare来实现的,实际应用中可以通过实现comparable接口来完成排序。
参考内容:
http://www.jb51.net/article/42767.htm
http://blog.sina.com.cn/s/blog_8250c39a0101ka9r.html
/article/10406761.html
/article/10583979.html
/article/3966977.html
/article/7099076.html
public interface List extends Collection从这里就可以看出基本的内容了,首先List是个接口,然后是继承自Collection,而public interface Collectionextends Iterable,public interface Iterable。
1.List代表着一个有序的队列,所有就有get()的方法,实现类有四个:ArrayList,LinkedList,Vector,Stack。
ArrayList是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
LinkedList是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。
Vector是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。
Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。
当然,常用的一些方法肯定要知道,比如add,get,size,indexOf,lastIndexOf,iterator,remove等等。
List的遍历方法:
package com.ltp.collection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); String str = null; for (int i = 0; i < 10; i++) { list.add("aaa" + i); } // 遍历方法1 System.out.println("=====方法1======="); for (String tmp : list) { System.out.print(tmp+"\t"); } System.out.println(); System.out.println("====方法2========"); // 遍历方法2 for (int i = 0; i < list.size(); i++) { str = list.get(i); System.out.print(str+"\t"); } str = null; System.out.println(); System.out.println("====方法3========"); // 遍历方法3 Iterator<String> it = list.iterator(); while(it.hasNext()){ str = it.next(); System.out.print(str+"\t"); } str = null; } }
list中的数据是可以重复的,所有有时候可能用到List的去重复操作。暂时知道的有两种方法:一是使用list的contains,二是使用set来去除其中的重复项。
package com.ltp.collection; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class ListRemoveRepeat { /*public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(1); list.add(1); list.add(4); Iterator<Integer> it = list.iterator(); List<Integer> newlist = new ArrayList<Integer>(); while(it.hasNext()){ int a = it.next(); if(newlist.contains(a)){ it.remove(); }else{ newlist.add(a); } } for(Integer i :newlist){ System.out.print(i+"\t"); } }*/ public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(1); list.add(1); list.add(4); Iterator<Integer> it = list.iterator(); Set<Integer> set = new HashSet<Integer>(); while(it.hasNext()){ int a = it.next(); set.add(a); } for(Integer i :set){ System.out.print(i+"\t"); } } }
list与数组之间的相互转换?
package com.ltp.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ListToArray { public static void main(String[] args) { //list转换为数组 /* List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(5); list.add(1); list.add(2); Integer a[] = null; a = (Integer[]) list.toArray(new Integer[list.size()]); for(int i=0;i<a.length;i++){ System.out.print(a[i]+"\t"); }*/ //数组转换为list Integer a[] = {1,2,3,5,8,2,5}; List<Integer> list = new ArrayList<Integer>(); list = Arrays.asList(a); for(Integer i:list){ System.out.print(i+"\t"); } } }
list中排序问题?
Collections有一个sort方法,其实现是通过compare来实现的,实际应用中可以通过实现comparable接口来完成排序。
参考内容:
http://www.jb51.net/article/42767.htm
http://blog.sina.com.cn/s/blog_8250c39a0101ka9r.html
/article/10406761.html
/article/10583979.html
/article/3966977.html
/article/7099076.html
相关文章推荐
- 转!!为什么要java环境变量配置?
- javaweb项目开启ssi包含
- 解决Eclipse导入ApiDemos后R.java不自动生成的问题
- Spring MVC 学习 之 - URL参数传递
- Java Collection 接口、Set 接口、List 接口基本操作 练习
- Java获取当前日期前一周、前一个月、当年的时间、两个日期间的间隔天数
- 开源 java CMS - FreeCMS2.1公布
- java操作MySQL数据事务的简单学习
- JavaJdbc ORA-12505错误解决方法
- Spring2.5.6 和Spring3.0.5所有jar下载地址
- MyEclipse常用快捷键
- [LeetCode][Java] Count and Say
- Java中的基本数据类型和引用数据类型的内存模型
- win7下JDK环境变量配置
- == !=比较的是内存地址 字符串用equals比较
- Java类加载器总结
- 动态代理---动态生成java文件并编译成class文件
- eclipse启动闪退解决方法
- Java学习笔记(2015.7.6~10)
- [转]Java中要注意的几个问题