List使用:

 package com.collection.list;

 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;

 /**
  * package com.collection.list
  * functional describe:
  * ArrayList本质上是数组的封装。
  * ArrayList与LinkedList性能上的区别:
  * 随机添加或删除时:ArrayList  <  LinkedList
  * 随机获取元素时: ArrayList > LinkedList
  * 在集合末尾添加或查询元素时,性能都差不多
  *
  * @version 1.0 16-8-24 上午9:19
  * @auther luyanliang [765673481@qq.com]
  */
 public class ArrayListDemo {

     /**
      * List转换数组
      */
     public static void toArray() {
         List<String> list = createStringList();
         String[] array = list.toArray(new String[list.size()]);
         System.out.println("List转换成数组结果: " + Arrays.toString(array));
     }

     /**
      * 数组转List
      * 注:转换后的list不能进行删除或添加操作
      *
      * 运行结果:
      *   数组转换成List结果: [Lucy, Hillary Clinton, Mark]
      ×   Exception in thread "main" java.lang.UnsupportedOperationException
      *
      */
     public static void toList() {
         String[] array = new String[] {"Lucy", "Hillary Clinton", "Mark"};
         List<String> list = Arrays.asList(array);
         System.out.println("数组转换成List结果: " + list);
 //        list.remove("Lucy");
     }

     /**
      * 合并集合并去重
      * 注:Arrays.asList()创建的集合不能add()或remove()。
      * 具体原因看源码:Arrays没有重写AbstractList类的add()或者remove()方法,所以只用添加或删除都会报错
      */
     public static void addCollection() {
         List<String> original = createStringList();
         List<String> addList = new ArrayList<String>();
         addList.add("add");
         addList.add("Jone");
         addList.remove(original);
         addList.addAll(original);
         System.out.println("两个集合合并后的结果为: " + original);
     }

     /**
      * 对象引用
      *
      * 运行结果:
      *    原先集合: [Jone, Mock, Mark]
      *    引用集合: [Jone, Mock, Mark]
      *    删除元素Jone后原先集合为: [Mock, Mark]
      *    删除元素Jone后引用集合为: [Mock, Mark]
      */
     public static void copyList() {
         List<String> original = new ArrayList<String>();
         original.add("Jone");
         original.add("Mock");
         original.add("Mark");
         List<String> quote = original;
         System.out.println("原先集合: " + original);
         System.out.println("引用集合: " + quote);
         original.remove("Jone");
         System.out.println("删除元素Jone后原先集合为: " + original);
         System.out.println("删除元素Jone后引用集合为: " + quote);
     }

     /**
      * 创建集合
      * @return
      */
     public static List<String> createStringList() {
         List<String> strList = Arrays.asList("Jone", "Luce", "Mack");
         return strList;
     }

     public static void main(String[] args) {
 //        ArrayListDemo.toArray();
 //        ArrayListDemo.copyList();
 //        ArrayListDemo.toList();
         ArrayListDemo.addCollection();
     }
 }

删除List集合中指定的元素:

 import java.util.*;

 public class Test {

     public void remove1() {
         List<String> strList = this.createList();
         for (int i = 0; i < strList.size(); i ++ ) {
             String str = strList.get(i);
             if ("ab5".equals(str)) {
                 strList.remove(i);
                 i --;
             }
             System.out.println("i: " + i + ", str: " + str + ", size: " + strList.size());
         }
         System.out.println("*************");
         System.out.println(strList.toString());
     }

     public void remove2() {
         List<String> strList = this.createList();
         Iterator<String> iterator = strList.iterator();
         if (iterator.hasNext()) {
             String str = iterator.next();
             if ("ab5".equals(str)) {
                 iterator.remove();
             }
         }
     }

     public void remove3() {
         List<String> strList = this.createList();
         for (int i = 0; i < strList.size() - 1; i ++) {
             String str = strList.get(i);
             for (int j = i + 1; j < strList.size(); j ++) {
                 String nextStr = strList.get(j);
                 if (nextStr.equals(str)) {
                     strList.remove(j);
                     j --;
                 }
             }
             System.out.println("i: " + i + ", str: " + str + ", size: " + strList.size());
         }
         System.out.println("*************");
         System.out.println(strList.toString());
     }

     public static void main(String[] args) {

     }

     public void createList() {
         List<String> strList = new ArrayList<String>();
         strList.add("ab1");
         strList.add("ab2");
         strList.add("ab3");
         strList.add("ab4");
         strList.add("ab5");
         strList.add("ab4");
         strList.add("ab5");
         strList.add("ab6");
         System.out.println(strList.toString());
         System.out.println("*************");
         return strList;
     }
 }

ArrayList常用操作的更多相关文章

  1. Hbase常用操作(增删改查)

    Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区  作者:net19880504 [字体:大 中 小]     运行Eclipse,创建一个新的Java工程“HBa ...

  2. [PY3]——内置数据结构(1)——列表及其常用操作

    列表及其常用操作_xmind图         about列表 列表是一个序列,用于顺序存储数据 列表分为两种:ArrayList(用数组实现).LinkedList(用链表实现) 定义与初始化 #l ...

  3. Java ArrayList常用接口介绍及示例

    Java List 常用类型 类型 特征 ArrayList 随机访问元素快:中间插入与删除元素较慢:操作不是线程安全的 LinkedList 中间插入与删除操作代价较低,提供优化的顺序访问:随机访问 ...

  4. Stream流的基本介绍以及在工作中的常用操作(去重、排序以及数学运算等)

    平时工作中,我在处理集合的时候,总是会用到各种流操作,但是往往在处理一些较为复杂的集合时,还是会出现无法灵活运用api的场景,这篇文章的目的,主要是为介绍一些工作中使用流时的常用操作,例如去重.排序和 ...

  5. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  6. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  7. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  8. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  9. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

随机推荐

  1. jquery插件扩展的学习

    jquery插件的学习可以点击这里 举个例子 //首先先来一个插件 (function($){ $.fn.extent({ bigfont:function(){ return this.css('f ...

  2. Web API系列(二)接口安全和参数校验

    以前简单介绍过web api 的设计,但是还是有很多朋友问我,如何合理的设计和实现web api.比如,接口安全,异常处理,统一数据返回等问题.所以有必要系统的总结总结 web api 的设计和实现. ...

  3. 谈谈混合 App Web 资源的打包与增量更新

    综述 移动 App 的运行环境具有带宽不稳定,流量收费,启动速度比较重要等特点,所以混合 App 如何加载 Web 资源并不是一个新问题.本文目的是总结出一种资源打包下载的思路和方案,并且提供一种打包 ...

  4. CentOS 6.5 安装 Redis-3.2.6

    到官网下载最新版的 Redis-3.2.6, 我把它放到文件夹:/usr/local/src/centos-sdk/source2/redis 安装脚本 redis-3.2.6.sh #!/bin/b ...

  5. HTML5 Canvas 绘图

    首先要注意: <canvas> 元素不被一些老的浏览器所支持, 但被支持于Firefox 1.5+, Opera 9+, 新版本的Safari, Chrome, 以及Internet Ex ...

  6. spring实例化bean的三种方式

    公共使用的实体

  7. sublime3的安装和插件之类的

    1.http://www.sublimetext.com/3 选择适合自己电脑的下载 2.下载完之后打开,help -> enter lisence 谷了下注册码如下,粘贴过去,万一不行请自由飞 ...

  8. grep 命令

    简单介绍:grep命令是用于分析一行信息,若当中有我们所需要的信息,就将该行取出来. 语法结构:grep [-acinv] [--color=auto] '查找关键字' #{filename} -a: ...

  9. Python 网络爬虫(图片采集脚本)

    ===============爬虫原理================== 通过Python访问网站,获取网站的HTML代码,通过正则表达式获取特定的img标签中src的图片地址. 之后再访问图片地址 ...

  10. ubuntu-docker-consul-swarm-shipyard-portainer

    --- env --- root@node1:~# cat /etc/issueUbuntu 12.04.4 LTS \n \l root@node1:~# docker -vDocker versi ...