List使用
测试例子:TestList
package ds.collections.lists;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
/**
* 测试List
* 基础,使用,用法
* @author Hust
* @Time 2011-11-7
*/
public class TestList {
//--ArrayList / LinkedList / Vector
public static void main(String[] args) {
//linkedlistTest();
//arrayListTest();
vectorTest();
}
/**
* vector
* 线程安全,
*/
public static void vectorTest(){
Vector<String> v = new Vector<String>();
v.addElement("v1");
v.addElement("v2");
v.add("v5");
System.out.println("当前容量"+v.capacity()); //10
System.out.println(v.contains("v2")); //true
System.out.println(v.size());//3
System.out.println(v.elementAt(0));
System.out.println(v.get(0));
System.out.println(v.firstElement());
System.out.println(v.lastElement());
System.out.println(v.indexOf("v5"));
System.out.println(v.set(1, "vSet"));
//遍历
for (Enumeration<String> e = v.elements(); e.hasMoreElements();)
System.out.println(e.nextElement());
//Enumeration<String> e = v.elements();
//遍历2
Iterator<String> it = v.iterator();
while (it.hasNext()) {
System.out.println( it.next());
}
}
/**
* ArrayList
* 基于数组,插入快,按照index读取快 删除或者无序插入慢
*/
public static void arrayListTest(){
//不是同步的: List list = Collections.synchronizedList(new ArrayList());
//基于数组,可在初始化时指定其大小,0.75
List<String> list = new ArrayList<String>(8);
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//遍历
Iterator<String> it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next() + " ");
}
System.out.println(list.get(1)+list.size()); // b 4
ArrayList<String> arrList = new ArrayList<String>(list);
@SuppressWarnings("unchecked")
ArrayList<String> arrList2 = (ArrayList<String>) arrList.clone();
arrList.set(2, "set2");
System.out.println(arrList.indexOf("set2")); //2
System.out.println(arrList2.indexOf("set2")); // -1
System.out.println(arrList.contains("set2")); //true
System.out.println(arrList2.contains("set2")); //false
//list.clear();
for(Iterator<String> iterator = arrList.iterator(); iterator.hasNext();) {
System.out.println(iterator.next() + " ");
}
list.clear(); //清空list
System.out.println(list.isEmpty()); //true
System.out.println(arrList.isEmpty()); //false
}
/**
* linkedList
* 基于链表,随机访问较慢,插入,删除快.可以当作堆栈、队列和双向队列使用
*/
public static void linkedlistTest() {
//部分代码借鉴于:http://jonsion.iteye.com/blog/422033
/***
* 实现不是同 步的,可:List list = Collections.synchronizedList(new LinkedList());
* add() addFirst()均在列表头插入元素 addAll
* add(index,value)在指定位置插入元素 addAll(index,values)
* addLast()在列表尾插入元素
*
*/
List<String> linkList = new LinkedList<String>();
for (int i = 0; i < 10; i++) { //添加
linkList.add(String.valueOf(i + 10));
}
linkList.add("1111"); //在List后再加一元素
System.out.println("遍历一:for (int i = 0; i < linkList.size(); i++) linkList.get(i)");
for (int i = 0; i < linkList.size(); i++) {
//System.out.println("linkList index " + linkList.get(i));
}
linkList.remove(0);//删除指定位置的元素,同数组,第一个元素下标为0
Iterator<String> iterator = linkList.iterator();
System.out.println("遍历二:Iterator<String> iterator = linkList.iterator(); iterator.next() ");
while (iterator.hasNext()) {
iterator.next();
//System.out.println("linkList Iterator " + iterator.next());
}
linkList.add(2, "1111"); //指定位置添加元素
System.out.println("遍历三:for (String tmpstr : linkList) tmpstr ");
for (String tmpstr : linkList) {
//System.out.println("linkList : " + tmpstr);
}
//直接拷贝得了
LinkedList<String> linkedlist = new LinkedList<String>(linkList);
linkedlist.addFirst("addFirst");//在LinkedList
System.out.println("list大小"+linkedlist.size());
System.out.println("是否包含元素"+linkedlist.contains("addFirst"));
System.out.println("取第一个元素值"+linkedlist.getFirst());
System.out.println("删除第一个元素其值为"+linkedlist.removeFirst());
System.out.println("取最后一个元素值"+linkedlist.getLast());
System.out.println("删除最后一个元素其值为"+linkedlist.removeLast());
System.out.println("设置指定位置元素的值"+linkedlist.set(2,"set2"));
System.out.println("元素出现的位置"+linkedlist.indexOf("set2"));//lastIndexOf
/**
* list大小12
是否包含元素true
取第一个元素值addFirst
删除第一个元素其值为addFirst
取最后一个元素值1111
删除最后一个元素其值为1111
设置指定位置元素的值1111
元素出现的位置2
*/
iterator = linkedlist.iterator();
while (iterator.hasNext()) {
System.out.println("linkedlist Iterator " + iterator.next());
}
}
}
分享到:
相关推荐
java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...
java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重
java list<bean> date.class如果日期类型就改成这个 日期时间格式转换
Java list转excel.zip
java List XMl转换DEMO List2XML 可指定导出字段 XML2List 采用JAVA反射机制讲XML转换成JAVABEAN
java List、Set与Array之间的相互转换 java List、Set与Array之间的相互转换
文件里包含jar包 dom4j-1.6.1.jar,list中放多个map,map里随意放键值对,最后可转换为xml文档,xml文档也可以解析存入list文件中
NULL 博文链接:https://bijian1013.iteye.com/blog/2358367
javalist数据结构_Java数据结构-------List 三种List:ArrayList,Vector,LinkedList 类继承关系图 ArrayList和Vector通过数组实现,⼏乎使⽤了相同的算法;区别是ArrayList不是线程安全的,Vector绝⼤多数⽅法做了...
9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类....
javaList的用法
Java list转json的jar,使用jar包转化后方便查看输出,
NULL 博文链接:https://xuedong.iteye.com/blog/1147254
天才之作:通过泛型,对List中对象多属性排序,支持设置各属性排序方式(动态属性),看了之后绝对让你震撼!
java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java ...
JavaList how to make JavaList
Java list 操作 删除 合并 交集 并集
java程序设计中List的定义和方法,用于Java程序设计。
将java对象list或者map转json数据不需要第三方包,直接使用就可以了,如果你传入的数据不确定是map类型还是list类型,那么自己处理一下就可以了(判断下类型,传入参数改为object)。 如果是json数据转成java对象list...
Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解。