05Java语法回顾_collection之arraylist
来源:互联网 发布:php员工管理系统源码 编辑:程序博客网 时间:2024/06/06 04:56
Java语法Collection之ArrayList
读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。
ArrayList自带方法
/* * List的特有功能: * A:添加功能 * void add(int index, Object obj):在指定位置添加元素 * B:删除功能 * Object remove(int index):根据指定索引删除元素,并把删除的元素返回。 * C:修改功能 * Object set(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值。 * D:获取功能 * int indexOf(Object o):返回指定元素在集合中第一次出现的索引 * Object get(int index):获取指定位置的元素 * ListIterator listIterator():列表迭代器 * E:截取功能 * List subList(int fromIndex, int toIndex):截取集合。 */
ArrayList方法测试
public class ListDemo2 { public static void main(String[] args) { // 创建集合对象 List list = new ArrayList(); // 添加元素 list.add("hello"); list.add("world"); list.add("java"); // void add(int index, Object obj):在指定位置添加元素 // list.add(1,"javaEE"); // IndexOutOfBoundsException // list.add(14,"javaSE"); // Object remove(int index):根据指定索引删除元素,并把删除的元素返回。 // System.out.println("remove:"+list.remove(1)); // System.out.println("remove:"+list.remove(12)); // Object set(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值。 // System.out.println("set:" + list.set(1, "javaee")); //List subList(int fromIndex, int toIndex):截取集合。 // List list2 = list.subList(1, 2); // System.out.println("list2:"+list2); //int indexOf(Object o):返回指定元素在集合中第一次出现的索引 System.out.println("indexOf:"+list.indexOf("world")); System.out.println("indexOf:"+list.indexOf("world2")); System.out.println("list:" + list); }}
ConcurrentModificationException:并发修改异常
/* * ListIterator listIterator():列表迭代器 * * public interface ListIterator extends Iterator * * 面试题:ConcurrentModificationException:并发修改异常。 * 这是个什么异常,怎么产生的,怎么解决的? * * 怎么产生: * 当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。 * 因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。 * 而我们目前看到的确实,迭代器没变,集合变了。所以,报出了一个并发修改异常。 * * 注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。 * 那么,我们可不可以这样理解呢? * A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。 * 通过迭代器迭代的时候,可以通过迭代器对集合进行操作。 * B:全部通过集合操作:元素是添加到最后的。 * 通过集合普通for遍历的时候,可以通过集合去操作。 */
并发修改异常代码测试
public class ListDemo4 { public static void main(String[] args) { // 创建集合对象 List list = new ArrayList(); // 添加元素 list.add("hello"); list.add("world"); list.add("java"); // 迭代器// Iterator iterator = list.iterator();// while (iterator.hasNext()) {// String s = (String) iterator.next();// System.out.println(s);// } // System.out.println("-----------"); // 需求:请遍历集合,判断其中是否有"hello"这个元素,如果有,就再添加一个元素:"IOS" // Iterator it = list.iterator(); // while (it.hasNext()) { // String s = (String) it.next(); // if ("hello".equals(s)) { // list.add("IOS"); // // it = list.iterator();//这样从原理是可以解决的,但是它会引起另外一个问题。(并发修改异常) // } // } // System.out.println("list:" + list); // System.out.println("-----------"); // 完全通过集合实现// for (int x = 0; x < list.size(); x++) {// String s = (String) list.get(x);// if ("hello".equals(s)) {// list.add("IOS");// }// }// System.out.println("list:"+list); // System.out.println("-----------"); // 遍历 ListIterator lit = list.listIterator(); while (lit.hasNext()) { String s = (String) lit.next(); if ("hello".equals(s)) {// list.add("IOS"); lit.add("IOS");// 注意这里使用的是ArrayList特有的迭代器添加的元素,不能使用结合添加 } } System.out.println("list:" + list); }}
listIterator(特有功能)
/* * ListIterator listIterator():列表迭代器 * * boolean hasNext() * Object next() * * 特有功能: * boolean hasPrevious() 逆向判断是否还有元素 * Object previous() 前一个元素 * * 虽然,可以逆向遍历,但是,要求先正向遍历,然后才能逆向遍历。 */
listIterator(特有功能)代码测试
public class ListDemo5 { public static void main(String[] args) { // 创建集合对象 List list = new ArrayList(); // 添加元素 list.add("hello"); list.add("world"); list.add("java"); // 遍历 ListIterator lit = list.listIterator(); while (lit.hasNext()) { String s = (String) lit.next(); System.out.println(s); } //逆向遍历,要求先正向遍历 while (lit.hasPrevious()) { String s = (String) lit.previous(); System.out.println(s); } }}
0 0
- 05Java语法回顾_collection之arraylist
- 04Java语法回顾_collection
- Java集合框架之_Collection接口
- 07Java语法回顾collection之linklist
- 10Java语法回顾之异常处理
- 11Java语法回顾之io流
- 12Java语法回顾之递归
- 13Java语法回顾之filewriter&&filereader
- 18Java语法回顾之网络编程
- 19Java语法回顾之反射
- 20Java语法回顾之设计模式
- 02java语法回顾_常用api类之stringbuffer
- 08Java语法回顾collection之set集合
- 06Java语法collection之arraylist续01
- 03Java语法语法回顾_Date
- java集合(上)_Collection集合
- Java 集合框架_Collection接口
- Java面经整理_Collection
- Assembly x64 Intro - SSE2 Diff 4x8 Store
- NSURLRequest 数据请求
- 干货 | 运营到底是做什么的?高级运营需要什么样的能力?
- java删除文件夹
- 跟随Adam Taylor学习MicroZed第一篇
- 05Java语法回顾_collection之arraylist
- 统计项目中代码行数
- python 网页爬取数据并存到数据库中
- 学习Android系统控件SwipeRefreshLayout
- Android音频系统之AudioPolicyService
- 从CM刷机过程和原理分析Android系统结构
- java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE
- 关于eclipse开发android项目时javah生成jni找不到类文件
- Ubutu挂载U盘亲身体验