快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

亚洲必赢App官方下:JAVA提高教程(6)认识List列表



列表是很常用的数据布局,感到比Map和Set用的频率要高一些吧,由于我常常用其返回数据库的操作结果集

package collection.lession6;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

import java.util.ListIterator;

import java.util.Stack;

import java.util.Vector;

/**

* 老紫竹JAVA前进教程(6)-熟识List列表

* List可以正确节制在聚拢里面的先后顺序。

* 可以直接经由过程数据的位置造访数据。

* 一样平常容许重复数据

* 一样平常容许null,且允许多个null

*

* @author 老紫竹

*

*/

public class Lession6 {

public static void main(String[] args) {

// 下面是List里面常用的实现类

// 大年夜小可变列表的实现,容许任何数据加入

ArrayList arrayList = new ArrayList();

// 同样是大年夜小可变列表的实现.

// 与ArrayList的最大年夜差别便是这个类的措施是同步(synchronized)的

// 具体的差别,请参考

// 看源代码理解ArrayList和Vector 的真正差别

// http://www.java2000.net/p9750

Vector vector = new Vector();

// 实现了双向行列步队的节制,包括头尾的操作

// 可用于客栈和FIFO操作等

LinkedList linkedList = new LinkedList();

// 集成自 Vector

// 供给了LIFO的客栈操作要领

Stack stack = new Stack();

// -----------------

// 下面以ArrayList作为例子,看看列表的各个措施

List list = new ArrayList();

// 构建第二个列表

List list2 = new ArrayList();

// 向列表的尾部添加指定的数据

list.add(123);

// 在列表的指定位置插入指定命亚洲必赢App官方下据

// 我们在最前面插入数据

// 列表的位置索引从0开始

list.add(0, 456);

// 将list2里面的数据,整个放到li亚洲必赢App官方下st1的尾部去

// 留意此处可所以任何聚拢类,不限于列表

list.addAll(list2);

// 将list2里亚洲必赢App官方下面的数据,整个放到list1指定位置的后面

// 即是插入一段数据

list.addAll(2, list2);

// 清空列表,删除里面所有的数据

list.clear();

// 判断列表里是否包孕某个数据

boolean found = list.contains(123);

// 判断列表是否包孕了另一个聚拢的所稀有据

// 留意此处可所以任何聚拢类,不限于列表

boolean ok = list.containsAll(list2);

// 得到指定位亚洲必赢App官方下置的数据

// 假如位置跨越了列表的范围 0 到 list.size()-1

// 则抛出非常:IndexOutOfBoundsException

Object obj = list.get(3);

// 获得数据在列表中的位置

// 假如没找到,返回-1

// 位置索引从0开始

int index = list.indexOf(456);

// 判断列表是不是空的

boolean empty = list.isEmpty();

// 列表的迭代器操作

// 顺序严格按照列表的保存的顺序

Iterator it = list.iterator();

// 获得数据在列表着末一次呈现的位置

// 得当于有重复数据的列表

index = list.lastIndexOf(456);

// 列表的另一个迭代器

ListIterator listIT = list.listIterator();

// 列表的另一个迭代器,可以指定肇端位置

ListIterator listIT2 = list.listIterator(3);

// 删除某个位置的数据

list.remove(3);

// 删除指定工具的第一个呈现的位置

// 留意,假如是整数,要区分其与remove(亚洲必赢App官方下int)的差别

// 建议用 remove(new Integer(123)); 来删除数据工具

list.remove(new Integer(123));

// 删除列表里在另一个聚拢里存在的数据

list.removeAll(list2);

// 只保留在另一个聚拢里存在的数据,即是交集

list.retainAll(list2);

// 调换指定位置的数据

list.set(3, 999);

// 列表数据的数量

int size = list.size();

// 获得一个子数组

List subList = list.subList(2, 10);

// 将聚拢转化为数组

Object[] objs = list.toArray();

// 将聚拢转化为指定款式的数组

// 比如聚拢里保存的都是String

String[] objs2 = (String[]) list.toArray(new String[0]);

}

}

总结:

实际上我们最常用的照样 ArrayList, Vector由于是同步措施,只有在多线程,以及全局的数据时,我才斟酌用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: