`
jiauwu
  • 浏览: 82987 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
阅读更多

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());
		}
	}
	

}
 

 

 


分享到:
评论
1 楼 xsoft 2014-09-04  
Java list的用法排序及遍历
http://dict.xsoftlab.net/dict/usage-sorting-and-ergodic-java-list
目录:
1Java List用法 - ArrayList
2Java List用法 - LinkedList
3Java List 排序 - 数字排序
4Java List 排序 - 中文排序
5Java List 排序 - 实体类排序
6Java List 遍历

相关推荐

    java List排序工具类

    java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List&lt;Person&gt; list = getData(); // 获取无序数据 new ...

    java list和xml互转例子

    本示例涉及的核心知识点是将Java中的List对象与XML文档进行相互转换。这里,我们使用的库是dom4j-1.6.1.jar,这是一个强大的Java XML处理库。 首先,让我们详细了解一下List和XML。List是Java集合框架的一部分,它...

    java List 排序 Collections.sort

    在Java编程中,`List`接口是集合框架的重要组成部分,提供了有序的元素存储。当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行...

    java List中对象多属性排序及各属性排序设置

    在Java编程中,排序是常见的数据处理操作,特别是在处理集合数据结构时,如List。本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和...

    java list根据对象的某个属性的值去重

    java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重

    Java list转excel.zip

    在Java编程中,将List对象转换为Excel文件是一项常见的任务,尤其在数据处理和报告生成时。本项目“Java list转excel.zip”提供了一个解决方案,它涵盖了如何利用Java的库来实现这一转换的过程。以下是对这个主题的...

    java List XMl转换DEMO

    而List是Java集合框架中的一个接口,主要用于存储一系列有序的对象。有时,我们需要将List对象转换为XML字符串,或者将XML数据解析为List对象。这个“java List XMl转换DEMO”就是用来演示这两个过程的实例。 首先...

    java List、Set与Array之间的相互转换

    在Java编程语言中,数据结构的使用是至关重要的,其中包括List、Set和Array。这三种数据结构各有特点,适用于不同的场景。理解它们之间的相互转换能够帮助我们更好地管理和操作数据。以下将详细介绍Java中List、Set...

    java list 日期时间格式转换

    java list&lt;bean&gt; date.class如果日期类型就改成这个 日期时间格式转换

    java List 深度复制方法

    在Java编程中,数据结构是程序设计的基础,而List接口作为集合框架的重要组成部分,常常用于存储有序的元素序列。当我们需要复制一个List时,可能会遇到浅复制和深复制的概念。浅复制只复制对象本身,而不复制它引用...

    javaList用法

    "javaList用法详解" Java 中的 List 用法是指在 Java 编程语言中使用 List 集合的方法和实现方式。List 集合是 Java 中的一种常用的集合类型,提供了许多实用的方法和实现类,下面将详细介绍 List 用法和实例。 ...

    Java list转json的jar

    在Java编程中,将List对象转换为JSON格式的数据是一个常见的需求,特别是在处理数据展示、存储或传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于解析的特性,被广泛应用于...

    java list 过滤

    在Java编程中,`List`过滤是一个常见的任务,它涉及到集合操作和条件判断。当我们需要从一个`List`中筛选出满足特定条件的元素时,Java提供了多种方式来实现这一功能。这篇博客“java list 过滤”可能深入探讨了这些...

    JavaList.rar_javalist

    在Java编程语言中,`List`接口是集合框架的一个重要组成部分,它代表了一种有序的、可变大小的集合。`List`接口继承自`Collection`接口,它提供了额外的功能,比如按照索引访问元素、保持元素的顺序以及允许重复元素...

    关于Java中List对象的分页思想-按10个或者n个数对list进行分组

    Java中List对象的分页思想-按10个或者n个数对list进行分组 Java中List对象的分页思想是一种常用的数据处理技术,通过将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素,例如10个或n...

    java 中如何从LIST 对象取值

    在Java编程语言中,列表(List)是一种常用的数据结构,用于存储有序的元素集合。本文将深入探讨如何从List对象中获取数据,包括使用不同类型的List实现以及从List中提取特定值的方法。我们将通过示例代码来理解这些...

    Java List集合的应用.rar

    Java List集合是Java编程语言中一个非常重要的数据结构,它属于集合框架的一部分,主要用于存储一组有序的、可重复的对象。List接口提供了许多方法,使得在处理列表数据时具有很高的灵活性和效率。在这个“Java List...

    9.javaList 接口及其实现类.zip

    9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类....

    Java对List多个排序、查询条件的处理

    在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...

Global site tag (gtag.js) - Google Analytics