Java学习第十五天之Collection、Iterator、List
来源:互联网 发布:dota地精工程师知乎 编辑:程序博客网 时间:2024/06/07 02:53
/** * */package cn.collection.demo;import java.util.ArrayList;import java.util.Collection;/** * @author 韦玉梅 2017/3/14 */public class CollectionDemo { /** * @param * 集合类 * 为什么出现集合类? * 面向对象语言体现的都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式 * 数组和集合类同是容器,有何不同? * 1、数组虽然也可以存储对象,但长度是固定的,集合长度是可变的。 * 2、数组可以存储基本数据类型,集合只能存储对象 * 集合类的特点? * 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象 * * 因为容器中数据结构不同,容器有很多种,不断地共性功能抽取,形成了集合体系--->集合框架顶层就成为Cellection接口 * * collection接口中的共性功能 * 1、添加 * boolean add(Object o) * boolean addAll(Collection c):将制定容器中的所有元素添加 * 2、删除 * void clear(); * boolean remove(object o) * boolean removeAll(Collection c); * 3、获取长度 * int size() * 4、判断 * boolean isEmpty(); * boolean contains(Object o) * boolean containsAll(Collection c) * 5、将集合转数组 * toArray(); * toArray([]); * 6、取出集合元素 * Interrator iterator * 获取集合中元素上迭代功能的迭代器对象 * 迭代:取出元素的一种方式 * 迭代器:具备着迭代功能的对象 * 而迭代对象不需要new 直接通过iterator方法获得 * 迭代器是取出Collection集合中 元素的公共方法 * * Collection * |--list(存入的人顺序和取出的顺序一致,)有索引,允许重复元素 * |--set(不允许重复元素) * 重点讲list接口中的特有方法:他的特有方法都是围绕索引定义的 * 支持增删改查 * 増:add(index,element) * 删:remove(index); * 改:set(index,new_element); * 查:indexOf(element); * element get(index); */ public static void main(String[] args) {// 演示collection中的基本功能// ArrayList<String> collection =new ArrayList<String>(); Collection collection =new ArrayList(); methodDemo(collection); } /** * */ public static void methodDemo(Collection collection) { collection.add("123"); collection.add("abd"); collection.add("12sdd"); System.out.println(collection+"\t"+collection.size()); collection.remove("12sdd"); System.out.println(collection+"\t"+collection.size()); collection.clear(); System.out.println(collection+"\t"+collection.size()); }}
/** * */package cn.collection.demo;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/** * @author 韦玉梅 * */public class InteratorDemo { /** * @param * Iterator的方法 * hasNext() next() remove() */ public static void main(String[] args) { //创建集合 Collection collection =new ArrayList(); collection.add("abc"); collection.add("xyz"); //获取该容器的迭代器 Iterator iterator =collection.iterator();// System.out.println(iterator.next()+"\t"+iterator.next()+"\t"+iterator.next());//会报NoSuchElementException while(iterator.hasNext()){ System.out.println(iterator.next()); } //循环打印输出 for(Iterator iterator2=collection.iterator();iterator2.hasNext();){ System.out.println(iterator2.next()); } }}
/** * */package cn.collection.demo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;/** * @author 韦玉梅 */public class ListDemo { /** * @param List支持增删改查 * list集合的具体子类。子类之所以区分是因为内部的数据结构(存储数据的方式不同) * |--Vector:数据结构是数组,数组是可变长度的(不断new新数组并将元素复制到新数组当中。线程同步的,增删和查询都很慢 * |--ArrayList:也是数组结构,也是长度可变的。线程不同步的,替代了Vector,增删速度不快。查询速度很快 * |--LinkedList:链表结构,线程不同步的。增删速度很快查询速度较慢 */ public static void main(String[] args) { List list=new ArrayList(); methodDemo(list); } /** * */ private static void methodDemo(List list) {// 1、常规添加元素 list.add("123"); list.add("abcd");// 2、插入元素 list.add(1,"xyz"); System.out.println(list);// 删除 list.remove(2); System.out.println(list);// 获取 System.out.println(list.get(1));// 获取 System.out.println(list.indexOf("123"));// 修改 list.set(1, "Bubble"); System.out.println(list);// 取出集合中的所有元素 for(Iterator iterator=list.iterator();iterator.hasNext();){ System.out.println("iterator:"+iterator.next()); }// list集合特有的取出方式 for(int i=0;i<list.size();i++){ System.out.println("get:"+list.get(i)); }// 在遍历的过程中,如果遍历到一个123,添加一个元素Blue /*for(Iterator iterator=list.iterator();iterator.hasNext();){ Object object=iterator.next(); // java.util.ConcurrentModificationException:// 迭代过程中使用了集合对象同时对元素进行操作。导致了迭代的不确定性,引发了该异常。// 解决思想:在迭代过程中,想要执行一些操作,使用迭代器的方法就可以了 if(object.equals("123")) list.add("Blue"); System.out.println("list:"+list); }*/ for(ListIterator iterator=list.listIterator();iterator.hasNext();){ Object object=iterator.next(); if(object.equals("123")) list.add("Blue"); } System.out.println("list:"+list); }}
0 0
- Java学习第十五天之Collection、Iterator、List
- JAVA学习第十五天
- Java学习第十五天
- java集合 - Collection - List - Set - Map - Iterator 学习笔记
- Java学习总结第十五天Java多态性
- 学习Unity3D第十五天之继承。
- java学习总结——第十五天
- No_16_0310 Java基础学习第十五天
- 第十五天java学习笔记异常
- JAVA求学之路第十五天
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 【java随记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 程序学习第十五天
- .net学习第十五天
- 第十五天学习笔记
- python学习---第十五天
- 【LeetCode】485. Max Consecutive Ones
- A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order
- topology中的配置文件和配置类
- java基础-------永远分不清的位运算符 与(&)、非(~)、或(|)、异或(^)
- Eclipse常用快捷键
- Java学习第十五天之Collection、Iterator、List
- jetty9安装配置
- 利用SELECT INTO创建临时表
- H5点击切换选项卡
- oracle数据库表空间巡检
- Qt实现读取显示obj文件——计算面的单位法向量
- scala高级编程
- 您的设计模式——代理模式【Proxy Pattern 】
- Android关于Theme.AppCompat相关问题的深入分析