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. Tomcat8安装, 安全配置与性能优化(转)

    一.Tomcat 安装 官网:http://tomcat.apache.org/ Tomcat8官网下载地址:http://tomcat.apache.org/download-80.cgi 为了便于 ...

  2. Linux系统下配置环境变量

    一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...

  3. Redis实战阅读笔记——第二章

    在性能的要求下,如何获取重构之前的构件

  4. CSS解决未知高度垂直居中

    尽管有CSS的vertical-align特性,但是并不能有效解决未知高度的垂直居中问题(在一个DIV标签里有未知高度的文本或图片的情况下). 标准浏览器如Mozilla, Opera, Safari ...

  5. D3.js学习(一)

    从今天开始我将和大家一起学习D3.js(Data-Driven Documents),由于国内关于D3的学习资料少之又少,所以我觉得很有必要把自己学习过程记录下来,供同学们参考,如果文章有有哪些表达有 ...

  6. C和指针 第十五章 输入输出缓冲

    对于C,所有的I/O操作都只是简单的从程序移进或移出字节,这种字节流便成为流(stream),我们需要关心的只是创建正确的输出字节数据,以及正确的输入读取数据,特定的I/O设备细节都是对程序隐藏的. ...

  7. PHP错误以及异常处理

    以前一直觉得php的异常处理没有什么,现在才发现这个还真是门学问,于是狠下心来好好研究了一下,写一篇文章,也作备忘吧. 1. php错误 无论是什么语言编程,都会有如下三种错误,当然php也不例外. ...

  8. Sicily 1151: 简单的马周游问题(DFS)

    这道题嘛,直接使用DFS搜索,然后莫名其妙地AC了.后来看了题解,说是move的顺序不同的话可能会导致超时,这时便需要剪枝,真是有趣.原来自己是误打误撞AC了,hhh.题解还有另一种解法是先把一条完整 ...

  9. mysql数据库史上最详细起步教程(1)

    本文主要讲解mysql的操作,尽量保证步骤的详细与清晰,希望能帮到大家. 1.登录后进行数据库的创建:create database lf(数据库名);  (一定要记住分号,mysql在语句的结束符就 ...

  10. 设置redis主从出现的问题

    314:S 05 Jan 15:12:17.433 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc ...