java list用法
2015-08-09 17:13
495 查看
推荐:
Java list的用法排序及遍历
![](http://hi.csdn.net/attachment/201012/28/0_1293501891718S.gif)
要点:
1.list可以添加任何对象,包括自定义的类对象
2.list只是一个接口,不要进行实例化操作。但是需要实例化一个ArrayList或者LinkedList;
List接口实现的类:ArrayList(实现动态数组), Vector(实现动态数组) ,LinkedList(实现链表), Stack(实现堆栈)
List mylist = new ArrayList();
3.如果是有封装类,则最好就是在定义时就声明泛型,这样就无需进行强制类型转换。
4.配合迭代器进行读取操作
java.util.ArrayList类实现一个可增长的动态数组,请参考API帮助文档。使用该方法向集合内添加对象,并且这些对象是按照一定的顺序排列的,它内部原理是数组实现的,因此处理数据量较大时,不建议使用。
java.util.Vector()使用类似于java.util.ArrayList.
java.util.LinkedList类实现了链表,可初始化化为空或者已存在的集合,通常使用以下方法
add();向链表末尾添加对象。
addFirst()在链表开头添加对象。
addLast()在链表末尾添加对象。
getFirst()得到链表开头的对象。
getLast()得到链表末尾的对象。
注意该类提供了随机访问列表中的元素的方法,但是底层依然必须遍历去查找随机访问的对象,因此性能依然有限.
添加索引版本:其实list方法因为是一个线性的列表存储,因此索引的使用也是在所难免。
java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据。创建时只能为空。使用push()方法进行添加对象
Java list的用法排序及遍历
![](http://hi.csdn.net/attachment/201012/28/0_1293501891718S.gif)
要点:
1.list可以添加任何对象,包括自定义的类对象
//定义了一个Person类 class Person{ ..... } //添加到中去 Person p1=new Person(); Person p2=new Person(); List list=new ArrayList(); list.add(p1); list.add(p2); for(int i=0;i<2;i++) Person p=(Person) list.get(i); //注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,主要原因在与list本身没有使用泛型 }
2.list只是一个接口,不要进行实例化操作。但是需要实例化一个ArrayList或者LinkedList;
List接口实现的类:ArrayList(实现动态数组), Vector(实现动态数组) ,LinkedList(实现链表), Stack(实现堆栈)
List mylist = new ArrayList();
3.如果是有封装类,则最好就是在定义时就声明泛型,这样就无需进行强制类型转换。
4.配合迭代器进行读取操作
java.util.ArrayList类实现一个可增长的动态数组,请参考API帮助文档。使用该方法向集合内添加对象,并且这些对象是按照一定的顺序排列的,它内部原理是数组实现的,因此处理数据量较大时,不建议使用。
java.util.Vector()使用类似于java.util.ArrayList.
package helloworld; import java.util.*; public class Myexception { public static void main(String[] args) { // 声明List 并实例化为ArrayList List al = new ArrayList(); //List al = new Vector(); // 使用add()方法添加元素 al.add("a"); al.add("b"); al.add("c"); al.add("d"); // 使用Iterator迭代器遍历出集合的元素并打印 for (Iterator i = al.iterator(); i.hasNext();) { String str = (String) i.next(); System.out.println(str); } } }
java.util.LinkedList类实现了链表,可初始化化为空或者已存在的集合,通常使用以下方法
add();向链表末尾添加对象。
addFirst()在链表开头添加对象。
addLast()在链表末尾添加对象。
getFirst()得到链表开头的对象。
getLast()得到链表末尾的对象。
注意该类提供了随机访问列表中的元素的方法,但是底层依然必须遍历去查找随机访问的对象,因此性能依然有限.
package helloworld; import java.util.*; public class Myexception { public static void main(String[] args) { //声明LinkedList并实例化 LinkedList al = new LinkedList(); //使用add()方法添加元素 al.add("a"); al.add("b"); al.add("c"); al.add("d"); //使用Iterator迭代器遍历出集合的元素并打印 for(Iterator i = al.iterator();i.hasNext(); ){ String str = (String) i.next(); System.out.println(str); } System.out.println("_____"); //向链表头和尾分别添加x和z al.addFirst("z"); al.addLast("x"); //遍历查看添加后的结果 for(Iterator i = al.iterator();i.hasNext(); ){ String str = (String) i.next(); System.out.println(str); } } }
添加索引版本:其实list方法因为是一个线性的列表存储,因此索引的使用也是在所难免。
package helloworld; import java.util.*; public class Myexception { public static void main(String[] args) { String a = "A", b = "B", c = "C", d = "D", e = "E"; List<String> list = new LinkedList<String>(); list.add(a); list.add(e); list.add(d); list.set(1, b);// 将索引位置为1的对象e修改为对象b list.add(2, c);// 将对象c添加到索引位置为2的位置 Iterator<String> it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } }
java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据。创建时只能为空。使用push()方法进行添加对象
public static void main(String[] args) { //声明Stack并实例化 Stack al = new Stack(); //使用push()方法添加元素 al.push("a"); al.push("b"); al.push("c"); al.push("d"); al.push("f"); //使用Iterator迭代器遍历出集合的元素并打印 for(Iterator i = al.iterator();i.hasNext(); ){ String str = (String) i.next(); System.out.println(str); } }
相关文章推荐
- struts2.2 Annotation 注解配置Action
- Java的Package和Classpath
- java.util.Date和java.sql.Date的区别及应用
- 【JavaMail开发总结】配置文件形式--发送邮件程序
- 智渔课堂官方免费教程二(拓展):关于解决新建文件没有扩展名的问题
- Java:JSON和Map相互转换
- java中static作用
- 华为上机 亮灯的个数 java
- Java反射机制之获取方法信息
- Java中extends 与 implement 区别(转)
- java使用阻塞队列实现生产者消费者模式
- HDU 5237 Base64 (Java大法好)
- 智渔课堂官方免费教程二(拓展):Java软件开发环境的安装与配置
- I学霸官方免费教程二(拓展):Java软件开发环境的安装与配置
- Java的date和以datetime为字段的数据库的处理办法
- Java查看List扩容后的容量
- 廖雪峰javascrip学习笔记<高级>
- [笔记][Java7并发编程实战手册]2.5使用Lock实现同步一
- Java构造方法
- corejava知识---【一】