zoukankan      html  css  js  c++  java
  • ArrayList 浅析示例

     1 package com.smbea.demo;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 /**
     8  * 1、继承自接口 List、RandomAccess、Cloneable、Serializable;
     9  * 2、实现自类 AbstractList;
    10  * 3、元素有顺序;
    11  * 4、增删操作由于要移动元素,故此增删比较慢;
    12  * 5、查询操作由于采用的是索引,故此查询比较快;
    13  * 6、非线程安全的-轻量级;
    14  * 7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
    15  * 8、由于实现了接口 Cloneable,故可以复制 ArrayList;
    16  * 9、由于实现了接口 Serializable,故可以被序列化
    17  * @author hapday
    18  * @date 2016年7月9日 下午9:25:23
    19  *
    20  */
    21 public class ArrayListDemo {
    22 
    23     public static void main(String[] args) {
    24         elementRepeatableTest();
    25         
    26         elementSequentialTest();
    27     }
    28 
    29     /**
    30      * 验证【元素可重复】
    31      */
    32     public static void elementRepeatableTest() {
    33         int num1 [] = new int[]{7,8,9};
    34         int num2 [] = num1;
    35         
    36         List<Object> list = new ArrayList<Object> ();
    37         list.add(1);
    38         list.add(2);
    39         list.add(3);
    40         list.add(3);
    41         list.add("string");
    42         list.add(num1);
    43         list.add(num2);
    44         list.add("中文");
    45         list.add("中文可重复");
    46         list.add("中文可重复");
    47         
    48         System.out.println("*** 元素可重复(迭代器)  ***");
    49         Iterator<Object> iterator = list.iterator();
    50         while(iterator.hasNext()){
    51             System.out.print(iterator.next() + " - ");
    52         }
    53         
    54         System.out.println("
    *** 元素可重复(forEach)  ***");
    55         for(Object object : list){
    56             System.out.print(object + " - ");
    57         }
    58         
    59         System.out.println("
    *** 元素可重复(toString())  ***");
    60         System.out.print(list);
    61     }
    62 
    63     /**
    64      * 【元素有顺序】
    65      */
    66     public static void elementSequentialTest() {
    67         List<Integer> list = new ArrayList<Integer> ();
    68         for(int index = 1; index <= 100000; index++){
    69             list.add(index);        // 加入 10 万的元素
    70         }
    71         
    72         boolean exists = true;        // 是否存在:true-存在;false-不存在
    73         int current = 0;    // 当前元素
    74         int previous = 0;    // 上一个元素
    75         Iterator<Integer> iterator = list.iterator();
    76         while(iterator.hasNext()){
    77             current = iterator.next();
    78             if(current < previous){
    79                 exists = false;
    80             }
    81             
    82             previous = current;
    83         }
    84         
    85         System.out.println("
    *** 元素有顺序  ***");
    86         System.out.print("是否有顺序:" + exists);
    87     }
    88 
    89 }
    1、继承自接口 List、RandomAccess、Cloneable、Serializable;
    2、实现自类 AbstractList;
    3、元素有顺序;
    4、增删操作由于要移动元素,故此增删比较慢;
    5、查询操作由于采用的是索引,故此查询比较快;
    6、非线程安全的-轻量级;
    7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
    8、由于实现了接口 Cloneable,故可以复制 ArrayList;
    9、由于实现了接口 Serializable,故可以被序列化
  • 相关阅读:
    64win7+64Oracle+32plsql
    Delphi与Java中的日期互换
    QT变异版本下载(SJLJ长跳转,DWARF不传递错误(32位专用),SEH(64位专用)),以及QT的实验室项目
    顿悟,职业生涯最重要的是行业水平的积累,而不是多学某一门语言(很危险)——遥想铁血强人刘志军对铁路行业的理解以及执行力
    天下古今之庸人,皆以一惰字致败(联想到了自己的高考数学大题)
    这七种情况下,不要创业
    Android 点击桌面快捷方式和Notifycation跳转到Task栈顶Activity
    字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法一网打尽
    QSplashScreen开机画面(不断的repaint)
    一个QT 3D转动控件
  • 原文地址:https://www.cnblogs.com/hapday/p/5656685.html
Copyright © 2011-2022 走看看