ArrayList常用操作
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常用操作的更多相关文章
- Hbase常用操作(增删改查)
Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区 作者:net19880504 [字体:大 中 小] 运行Eclipse,创建一个新的Java工程“HBa ...
- [PY3]——内置数据结构(1)——列表及其常用操作
列表及其常用操作_xmind图 about列表 列表是一个序列,用于顺序存储数据 列表分为两种:ArrayList(用数组实现).LinkedList(用链表实现) 定义与初始化 #l ...
- Java ArrayList常用接口介绍及示例
Java List 常用类型 类型 特征 ArrayList 随机访问元素快:中间插入与删除元素较慢:操作不是线程安全的 LinkedList 中间插入与删除操作代价较低,提供优化的顺序访问:随机访问 ...
- Stream流的基本介绍以及在工作中的常用操作(去重、排序以及数学运算等)
平时工作中,我在处理集合的时候,总是会用到各种流操作,但是往往在处理一些较为复杂的集合时,还是会出现无法灵活运用api的场景,这篇文章的目的,主要是为介绍一些工作中使用流时的常用操作,例如去重.排序和 ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
随机推荐
- nginx--->高并发优化
在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题. nginx配置文件和内核参数的优化,如有不妥,敬请指出 一.nginx的配置优化 1)nginx进程数 ...
- [c#基础]关于const和readonly常见的笔试题剖析
引言 有那么几天没更新博客了,发现到了不得不写的地步,总是有那么个声音在强迫自己,虽然工作很累,但是有些东西不写出来,不能原谅自己.今天为什么总结这两个关键字的区别,总觉得这两个关键字的用法用的太习惯 ...
- [Linux] Linux常用文本操作命令整理
简单的总结一下常用的一些实用的Linux文本操作命令,包括wc(统计).cut(切分).sort(排序).uniq(去重).grep(查找).sed(替换.插入.删除).awk(文本分析). 1.统计 ...
- 用.htaccess文件实现URL重写
注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html 这位博主的个人网站简洁 还有诗歌 ...
- EBS 中HOST主机并发请求模板
#!/bin/sh########################################################################################### ...
- 为什么要用base64编码
1.需求 了解为什么要使用base64对数据编码 2.理由 因为传输二进制数据的时候,网络中间的有些路由会把ascii码中的不可见字符删了,导致数据不一致.一般也会对url进行base64编码 Whe ...
- Idea+TestNg配置test-output输出
说明:testNG的工程我是使用eclipse创建的,直接导入到idea中,运行test时不会生产test-output,只能在idea的控制台中查看运行结果,然后到处报告,经过不懈的百度终于找到怎么 ...
- BZOJ 2160: 拉拉队排练
Description 问长度前 \(k\) 大的奇长度回文子串的乘积. Sol Manacher. 直接马拉车跑一边,统计一下答案,每次将长度-2就可以了. Code /************** ...
- 一些有趣的Javascript技巧
整理一些刷题时学会的小技巧…… 目录: 即大于0又小于0的变量 String.split() 与 正则表达式 缓存的几种方法 初始化一个数组 即大于0又小于0的变量 问题: 设计一个变量val,使得以 ...
- python之路十四
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...