浅谈我对集合框架的了解 - List
来源:互联网 发布:古典音乐 知乎 编辑:程序博客网 时间:2024/04/30 11:18
集合框架 (collection)
集合的说明:
当你的数据多了,你就封装到一个对象里,当对象多了,就会封装到集合里。
其实,集合是用来存储对象一种方式。
数组与集合区别:
数组:长度是固定的,可以存储基本数据类型,可以存储对象。
集合:长度是可变的,只能存储对象。
集合框架体系:
下面介绍 Collection 接口下的2个帮派 List , Set
List ( 有序的集合 ) ------------------------------------
List 特点:元素是有序的,可以存储重复的元素,因为List 具备索引,底层是数组结构。List 下分别有2个小弟 : ArrayList , LinkedList
-------------------------------------------------------------------------------------------------------------------------------------
ArrayList 示例:
/* 创建 */ArrayList al = new ArrayList(); //创建空参数ArrayList对象,初始化容量为10ArrayList a2 = new ArrayList(20); //创建ArrayList对象,且指定初始化容量为20ArrayList a3 = new ArrayList(a2); //创建ArrayList对象,且传入ArrayList对象,初始化数据。/* 添加 */al.add("abc"); //添加元素al.add(0 ,"qwe"); //指定位置下添加元素 (位置不可超过size()-1)al.addAll(a2); //添加Collection下的对象 al.addAll(0, a2); //从指定位置下,添加Collection下的对象/* 删除 */al.remove("abc"); //根据元素删除内容al.remove(0); //根据索引删除内容al.clear(); //移除此列表中的所有元素。/* 修改 */al.retainAll(a2); //2个元素相比较,返回相同元素al.removeAll(a2); //2个元素相比较,删除相同元素al.set(0,"qqqq"); //指定索引,将索引对应的元素修改成qqqq/* 判断 */al.isEmpty(); //判断列表为空al.contains("abc"); //判断列表是否包含指定元素 abc/* 获取 */al.size();//返回列表的长度al.clone(); //返回当前实例对象。al.get(0); //根据索引,查找元素al.indexOf("abc"); //根据元素,查找索引,找到返回索引位,否则-1al.lastIndexOf("abc"); //根据元素,查找索引,找到返回索引位,否则-1,从右往左开始List sub = al.subList(0, 2); //指定开始结束-1的范围,返回一个List对象, //这个需要注意,返回的是一个引用地址,不是新建立的 //需要注意的是 sub调用remove方法删除某个元素时,al对象的元素也会被删除。String[] s = (String[]) al.toArray(new String[0]); // 转换成数组对象。
LinkedList 实例:
<pre name="code" class="java"> LinkedList l2 = new LinkedList(ll); //创建LinkedList对象,且传入LinkedList对象,初始化数据。/* 它具备ArrayList的方法,此处不再敖述 *//* 下面是LinkedList 特有的方法 */ll.offerFirst("q"); //每一次都是从第一个位置插入元素ll.offerFirst("w"); //每一次都是从第一个位置插入元素ll.offerFirst("e"); //每一次都是从第一个位置插入元素ll.offerFirst("r"); //每一次都是从第一个位置插入元素ll.offerFirst("a"); //每一次都是从第一个位置插入元素ll.offerLast("1"); //每一次都是从最后个位置插入元素ll.peekFirst(); //每一次都是获取第一个元素ll.peekLast(); //每一次都是获取最后个元素ll.pollFirst(); //每一次都是获取第一个元素后删除元素ll.pollLast(); //每一次都是获取最后个元素后删除元素ll.element(); //获取第一个元素后不删除元素ll.offer("1111"); //在最后处插入元素。ll.peek(); //获取第一个元素后不删除元素ll.poll(); //获取第一个元素后删除元素
遍历集合通用方式:
ArrayList<Integer> al = new ArrayList<Integer>(); for(int i = 0; i<5; i++){al.add(i);}//集合通用的遍历方式,通过迭代器遍历元素Iterator it = al.iterator();while(it.hasNext()){System.out.println(it.next());}/* 需要注意的是,迭代器里不允许使用it.next()二次,否则引发 NoSuchElementException 异常 *//* Iterator 支持删除操作 调用it.remove()方法即可 *///通过高级For循环遍历for(Integer a :al){System.out.println(a);}
List 集合 特有的迭代器
ListIterator li = al.listIterator();while(li.hasNext()) //正向遍历{System.out.print(li.next()+" ");} System.out.println();while(li.hasPrevious()) //逆向遍历{System.out.print(li.previous ()+" ");}System.out.println();/* 在遍历的过程中,可以进行增删改查 *//*li.add(); //添加li.set(5); //修改li.remove(); //删除li.next(); //正向获取元素li.previous(); //反向获取元素li.hasNext() //判断下一个有没元素li.hasPrevious() //判断上一个有没元素*/
0 0
- 浅谈我对集合框架的了解 - List
- 浅谈我对集合框架的了解 - Set
- 浅谈我对进制间转换的了解
- 浅谈我对JAVA字符串的了解
- 浅谈我对JAVA线程的了解
- 浅谈我对反射的了解
- 浅谈我对File类的了解
- 我对MJRefresh框架的了解 -> MJRefreshComponent
- 我对MJRefresh框架的了解 -> MJRefreshHeader
- 我对MJRefresh框架的了解 -> MJRefreshComponent
- 浅谈我对框架的理解
- 浅谈我对框架的理解
- 浅谈我对Java位运算符的了解
- 浅谈我对Java异常类的了解
- 浅谈我对IO流的了解 - 字符流
- 浅谈我对IO流的了解 - 字符流缓冲区
- Java集合框架浅谈-List(一)
- Java集合框架浅谈-List(二)
- <android 笔记>通知栏学习2
- 掌握 Ajax,第 11 部分: 服务器端的 JSON
- 一个动画效果
- 模仿JQuery.extend函数,实现JS深拷贝和浅拷贝
- 一维List转换为二维数组
- 浅谈我对集合框架的了解 - List
- leetcode:Search Insert Position菜鸟解法
- 获取文件信息
- Linux中断处理驱动程序编写
- 使用JackSon
- 设计模式-简单工厂模式
- 角色控制器
- Android 之百分比布局 适应不同分辨率
- python #!/usr/bin/python作用