API学习ArrayList
来源:互联网 发布:avsow永久域名 编辑:程序博客网 时间:2024/06/07 03:49
“`
package com.wonders.week01.collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
* ArrayList类
* (1)java.lang.util包下的一个工具类
* (2)该类的继承层次:ArrayList extends AbstractList,
* AbstractList extends AbstractCollection,
* AbstractCollection extends Object
* (3)不是线程安全的集合
* @author liyongyong
*
*/
public class ArrayListTest {
/** * (1)ArrayList是一个实现了List接口的可以自动调整大小的特殊数组。 * 实现了所有可选择的List的操作,容纳所有的数据元素,包括null值。 * 此外还实现了List接口,而且该类还提供了操作数组的大小的方法,可以被用来在内部存储集合元素。 * 这个类大体上和Vector类是类似的,只是ArrayList是非同步的一个类。 * size, isEmpty, get, set, iterator,和listIterator这些操作都是常量时间运行, * 添加n个元素到集合中需要的算法时间复杂度是O(n)。一般来说所有的其他的方法都是以线性时间在运行。 * 与LinkedList 的实现相比较,ArrayList的常量因素是比较低的。 * (2)每个ArrayList的实例都有自己的一个容量,这个容量就是在集合中数组用来存储元素的大小。 * 它总是至少和集合的大小保持一致。当元素添加到ArrayList中的时候,它的容量会自动增长。 * 容量自动增长策略的细节没有详细的说明,事实上添加一个元素是有恒定的时间成本消耗。 * (3)再向一个ArrayList中添加大量的元素的时候,这个应用可以进行自身扩容,通过使用ensureCapacity * 方法,这个或许可以减少增加元素的再次分配。 */public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); ArrayList<Integer> arrayList = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); //返回集合元素有多少个 int size = list.size(); System.out.println("该集合有 " + size + "个元素"); //在指定的位置插入一个元素 list.add(0, 9); System.out.println("此时集合的元素有 " + list.size() + "个"); //向arrayList中添加元素 arrayList.add(6); arrayList.add(7); arrayList.add(8); System.out.println("arrayList集合中有" + arrayList.size() + "个元素"); //向集合list中添加集合arrayList集合中的所有元素 list.addAll(arrayList); System.out.println("添加arrayList集合元素以后的list集合大小是 : " + list.size()); //把arrayList集合进行复制,返回一个Object类型的对象 Object object = arrayList.clone(); if (object.equals(arrayList)) { System.out.println("object和arrayList是同一个对象"); }else{ System.out.println("object和arrayList不是同一个对象"); } //在指定位置添加某个集合的所有元素 list.addAll(3, arrayList); System.out.println("此时的集合大小 :" + list.size()); boolean flag = arrayList.contains(1); boolean flag1 = arrayList.contains(6); boolean flag2 = list.containsAll(arrayList); System.out.println(flag + "如果结果为true,说明arrayList中包含元素1"); System.out.println(flag1 + "如果结果为true,说明arrayList中包含元素6"); System.out.println(flag2 + "如果结果为true,说明list集合中包含arrayList"); Integer num = list.get(0); System.out.println("在list中索引为0的元素是 "+num); //遍历list集合,并且在控制台循环输出list的元素 for (Integer integer : list) { System.out.print(integer + "====="); } System.out.println(); int index = list.indexOf(7); System.out.println("元素7在集合list中第一次出现的位置索引是 : " + index); int index2 = list.indexOf(-9); System.out.println("元素-9在集合list中第一次出现的位置索引是: " + index2); boolean empty = list.isEmpty(); System.out.println("list是否为空集合:" + empty); //清空集合中的所有元素 arrayList.clear(); boolean arrayListEmpty = arrayList.isEmpty(); System.out.println("arrayList中是否含有元素 : " + arrayListEmpty); //以适当的顺序返回该列表中的元素的迭代器 Iterator<Integer> iterator = list.iterator(); //使用iterator来遍历集合 while (iterator.hasNext()) { System.out.print(iterator.next()+"----"); } System.out.println(); //用来获取元素在集合中最后一次出现的位置索引 int lastIndex = list.lastIndexOf(7); System.out.println("元素7在集合中出现的最后一次的位置索引是:" + lastIndex); //返回一个集合中的集合元素的迭代 ListIterator<Integer> listIterator = list.listIterator(); while (listIterator.hasNext()) { Integer integer = (Integer) listIterator.next(); System.out.print(integer + "@"); } System.out.println(); //从指定位置开始,获取集合中的剩余元素迭代的一个子集合 ListIterator<Integer> lIterator = list.listIterator(7); while (lIterator.hasNext()) { Integer integer = (Integer) lIterator.next(); System.out.print(integer + " "); } System.out.println(); //移除集合中的所有元素 lIterator.remove(); while (lIterator.hasNext()) { Integer integer = (Integer) lIterator.next(); System.out.println("-----------------------"); System.out.println(integer); } boolean flag3 = list.remove(Integer.valueOf(7)); System.out.println("是否从list集合中移除元素7 " + flag3); boolean removeFlag = list.removeAll(arrayList); System.out.println("是否从list集合中将arrayList集合中的元素全部移除 : " + removeFlag); for (Integer integer : list) { System.out.print(integer + " "); } System.out.println(); //用新的元素值替换指定位置的元素值 list.set(list.size()-1, 99); for (Integer integer : list) { System.out.print(integer + "====="); } System.out.println(); //获取当前集合的一个子集合,子集合的元素是从指定位置开始截取到指定位置结束 List<Integer> list2 = list.subList(2, list.size()-1); for (Integer integer : list2) { System.out.print(integer + " "); } System.out.println(); Object[] arr = list2.toArray(); for (int i = 0; i < arr.length; i++) { System.out.print( arr[i] + "xxx"); }}
}
“`
阅读全文
1 0
- API学习ArrayList
- ArrayList API 学习小笔记
- ArrayList学习
- ArrayList学习
- ArrayList学习
- ArrayList学习
- JAVA学习第三十五课(常用对象API)—Vector、LinkedList、ArrayList集合演示
- Java学习之ArrayList
- java.util.ArrayList学习
- Java学习之ArrayList
- 学习使用ArrayList
- 学习使用ArrayList
- ArrayList的学习
- java源码学习-----ArrayList
- ArrayList的学习
- java ArrayList源码学习
- ArrayList类的学习
- ArrayList实现原理-学习
- 将某一线程设置为后台线程
- 昂贵的聘礼 POJ
- poj 2001 Shortest Prefixes (Trie树)
- Nim博弈和威佐夫博弈 Return of the Nim
- 码力训练
- API学习ArrayList
- 使用druid连接池带来的坑testOnBorrow=false
- JSP无法连接mysql数据库,使用java可以连接
- netty客户端引发的线程血案(一)
- 2台电脑共享硬盘方法 有时候我们需要在两台电脑之间传送大容量的文件,例如系统备份的镜像文件,或者要拷贝整个硬盘里的文件,我们又找不到这么大的移动存储设备,该怎么办,其实在没有网络和大容量移动磁盘的情
- c++笔记1
- DOM小结
- 【Linux】【Opencv】某些情况make编译出现/usr/bin/ld: cannot find -lopencv_dep_cudart
- spring-retry简单使用