java中List集合及其遍历详解
1. 首先List<E>集合继承与Collection<E>,是一个接口。 ① Collection (集合框架是JDK1.2版本出现的) ② list:是有序的,元素可以重复,以为该集合体系有索引。 经常用到的是实现该接口的ArrayList和LinkedList类 ③ Arraylist: 底层的数据结构使用的是数组结构, 特点: 查询速度很快,但是增删稍慢。线程不同步 LinkedList: 底层使用的是链表数据结构。 特点: 增删速度很快,查询稍慢。 Vector:(JDK1.0版本出现的) 底层是数组数据结构,线程同步。被ArrayList替代了。(已经不用了) 2. List的两种遍历方式: public class Demo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); System.out.println("........第一种遍历方式:for遍历......"); for (Object li : list) { System.out.println(li); } System.out.println("........第二种遍历方式:ListIterator迭代遍历......"); ListIterator<String> it = list.listIterator(); while (it.hasNext()) { Object obj = it.next(); System.out.println(obj); } } } 效果图: 3.使用LinkList模拟一个堆栈或者队列数据结构。即: 堆栈:先进后出 ; 队列: 先进先出 class Duilie{ private LinkedList<Object> link; Duilie(){ link = new LinkedList<Object>(); } public void myAdd(Object obj){ link.addFirst(obj); } public Object myGet(){ return link.removeLast();//先进先出---若要改成先进后出,将removelast()改成removeFirst() } public boolean isNull(){ return link.isEmpty(); } } public class Demo2 { public static void main(String[] args) { Duilie dl = new Duilie(); dl.myAdd("java01"); dl.myAdd("java02"); dl.myAdd("java03"); dl.myAdd("java04"); while(!dl.isNull()){ System.out.println(dl.myGet()); } } } 效果图: 以上为 先进先出,若要改为先进后出,则根据代码中写的改一下就可以了 以上所述就是本文的全部内容了,希望大家能够喜欢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |