欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    编写字符界面应用(中).ppt

    • 资源ID:6333722       资源大小:250.99KB        全文页数:27页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编写字符界面应用(中).ppt

    编写字符界面应用(中),ID:SCSJ001-Java Basic Syntax,集合框架体系结构,2023/10/17,Java集合类(下),3,Collection接口,Collection API提供“集合”的功能Collection API包含下述接口Colection:将一组对象以集合元素的形式组织到一起,在其子接口中分别实现不同的组织方式Set:Collection的子接口,不记录元素的保存顺序,且不允许有重复元素List:Collection的子接口,记录元素的保存顺序,且允许有重复元素,2023/10/17,Java集合类(下),4,Collections(集合)API,一个collection(集合)是用一个对象来代表一组对象,其中的每个对象作为collection的一个元素。在Collection API中,代表对象集合的接口有:Collection 抽象的集合Set Collection的子接口,一个无序无重复集List Collection的子接口,一个有序可重复集,2023/10/17,Java集合类(下),5,Collection 层次结构,2023/10/17,Java集合类(下),6,数组列表ArrayList,在编程中常常会遇到需要动态操纵数组,比如在运行时增加和删除数组元素,而且有时在编译时又不想确定数组大小希望它可以动态伸缩,在java中解决这一问题的方法是使用java.util包中的ArrayList类 ArrayList是List接口的一个可变长数组实现。,2023/10/17,Java集合类(下),7,数组列表ArrayList,public int size();/返回列表中的元素个数public Object get(int index);/返回指定位置的元素public void set(int index,Object obj);/设置指定位置元素public void add(Object obj);/在列表末尾增加元素public void add(int index,Object obj);/在列表指定位置插入元素public void clear();/删除列表中所有元素public void remove(int index);/删除列表中指定位置元素元素public void contains(Object obj);/判断列表中指定对象是否存在,2023/10/17,Java集合类(下),8,ArrayList示例(ArrayListExample),public class ArrayListExample public static void main(String args)ArrayList al=new ArrayList();/Create a new ArrayListfor(int i=0;i10;i+)al.add(new Integer(i);/Add Items to the array list for(int i=0;ial.size();i+)System.out.println(i+=+al.get(i);al.remove(5);al.set(5,new Integer(66);for(Iterator i=al.iterator();i.hasNext();)Integer integer=(Integer)i.next();System.out.println(integer);,2023/10/17,Java集合类(下),9,Set 接口(例:SetTest),Set 接口继承 Collection 接口,而且它不允许集合中存在重复项,每个具体的 Set 实现类依赖添加的对象的 equals()方法来检查独一性。Set接口没有引入新方法,所以Set就是一个Collection,只不过其行为不同。,2023/10/17,Java集合类(下),10,Set 接口(例:SetTest),HashSet h=new HashSet();h.add(1st);h.add(2nd);h.add(new Integer(3);h.add(new Double(4.0);h.add(2nd);/重复元素,未被加入h.add(new Integer(3);/重复元素,未被加入,2023/10/17,Java集合类(下),11,HashSet,HashSet扩展AbstractSet并且实现Set接口。它创建一个类集,该类集使用散列表进行存储。散列表通过使用称之为散列法的机制来存储信息。在散列(hashing)中,一个关键字的信息内容被用来确定唯一的一个值,称为散列码(hashcode)。而散列码被用来当做与关键字相连的数据的存储下标。关键字到其散列码的转换是自动执行的?你看不到散列码本身。你的程序代码也不能直接索引散列表。散列法的优点在于即使对于大的集合,它允许一些基本操作如add(),contains(),remove()和size()方法的运行,时间保持不变。,2023/10/17,Java集合类(下),12,HashSet,HashSet()构造一个默认的散列集合HashSet(Collection c)用c中的元素初始化散列集合HashSet(int capacity)用capacity初始化散列集合的容量HashSet(int capacity,float fillRatio)第四种形式用它的参数初始化散列集合的容量和填充比(也称为加载容量)。填充比必须介于0.0与1.0之间,它决定在散列集合向上调整大小之前,有多少能被充满。具体的说,就是当元素的个数大于散列集合容量乘以它的填充比时,散列集合被扩大。对于没有获得填充比的构造函数,默认使用0.75.,2023/10/17,Java集合类(下),13,HashSet(例:HashSetDemo),HashSet没有定义任何超过它的超类和接口提供的其他方法。重要的是,注意散列集合并没有确保其元素的顺序,因为散列法的处理通常不让自己参与创建排序集合。如果需要排序存储,另一种类集TreeSet将是一个更好的选择。下面是该程序的输出:A,F,E,D,C,B如上面解释的那样,元素并没有按顺序进行存储。,2023/10/17,Java集合类(下),14,Iterator接口,Iterator接口定义了对Collection类型对象中所含元素的遍历等增强处理功能可以通过Collection接口中定义的iterator()方法获得一个对应的Iterator(实现类)对象Set(实现类)对象对应的Iterator仍然是无序的List(实现类)对象对应的ListIterator对象可以实现对所含元素的双向遍历:使用next()方法和previous()方法,2023/10/17,Java集合类(下),15,Iterator接口层次,2023/10/17,Java集合类(下),16,Iterator接口,void add(Object obj)将obj插入列表中的一个元素之后,该元素在下一次调用next()方法时,被返回boolean hasNext()如果存在更多的元素,则返回true,否则返回falseObject next()返回下一个元素。如果没有下一个元素,则引发NoSuchElementException异常void remove()删除当前元素,如果试图在调用next()方法之后,调用remove()方法,则引发IllegalStateException异常,2023/10/17,Java集合类(下),17,Iterator接口,hasPrevious()如果存在前一个元素,则返回true;否则返回falseint nextIndex()返回下一个元素的下标,如果不存在下一个元素,则返回列表的大小Object previous()返回前一个元素,如果前一个元素不存在,则引发一个NoSuchElementException异常int previousIndex()返回前一个元素的下标,如果前一个元素不存在,则返回-1void set(Object obj)将obj赋给当前元素。这是上一次调用next()方法或previous()方法最后返回的元素,2023/10/17,Java集合类(下),18,Iterator接口(例:IteratorDemo),在通过迭代函数访问类集之前,必须得到一个迭代函数。每一个Collection类都提供一个iterator()函数,该函数返回一个对类集头的迭代函数。通过使用这个迭代函数对象,可以访问类集中的每一个元素,一次一个元素。通常,使用迭代函数循环通过类集的内容,步骤如下:,2023/10/17,Java集合类(下),19,Iterator接口(例:IteratorDemo),1.通过调用类集的iterator()方法获得对类集头的迭代函数。2.建立一个调用hasNext()方法的循环,只要hasNext()返回true,就进行循环迭代。3.在循环内部,通过调用next()方法来得到每一个元素。对于执行List的类集,也可以通过调用ListIterator来获得迭代函数。正如上面解释的那样,列表迭代函数提供了前向或后向访问类集的能力,并可让你修改元素。否则,ListIterator如同Iterator功能一样。,2023/10/17,Java集合类(下),20,Iterator接口,程序的输出如下所示:Original contents of al:C A E B D FModified contents of al:C+A+E+B+D+F+Modified list backwards:F+D+B+E+A+C+特别值得注意的是:列表是如何被反向显示的。在列表被修改之后,litr指向列表的末端(记住,当到达列表末端时,litr.hasNext()方法返回false)。为了以反向遍历列表,程序继续使用litr,但这一次,程序检测它是否有前一个元素。只要它有前一个元素,该元素就被获得并被显示出来。,2023/10/17,Java集合类(下),21,映射(map),映射(map)是一个存储关键字和值的关联或者说是关键字/值对的对象。给定一个关键字,可以得到它的值。关键字和值都是对象。关键字必须是唯一的。但值是可以被复制的。有些映射可以接收null关键字和null值。而有的则不行。,2023/10/17,Java集合类(下),22,HashMap,HashMap类使用散列表实现Map接口。这允许一些基本操作如get()和put()的运行时间保持恒定,即便对大型集合,也是这样的。HashMap()构造一个默认的散列映射HashMap(Map m)用m的元素初始化散列映射HashMap(int capacity)将散列映射的容量初始化为capacityHashMap(int capacity,float fillRatio)用它的参数同时初始化散列映射的容量和填充比。容量和填充比的含义与前面介绍的HashSet中的容量和填充比相同。,2023/10/17,Java集合类(下),23,HashSet 和 HashMap,HashMap可以看作三个视图:key的Set,value的Collection,Entry的Set。这里HashSet就是其实就是HashMap的一个视图。HashSet内部就是使用Hashmap实现的,和Hashmap不同的是它不需要Key和Value两个值。往hashset中插入对象其实只不过是内部做了public boolean add(Object o)return map.put(o,PRESENT)=null;HashMap为散列映射,它是基于hash table的一个实现,它可在常量时间内安插元素,或找出一组key-value pair.HashSet为散列集,它把查找时间看的很重要,其中所有元素必须要有hashCode(),2023/10/17,Java集合类(下),24,HashTable 与 HashMap,HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。HashTable使用Enumeration,HashMap使用Iterator。,2023/10/17,Java集合类(下),25,泛型 编译类型,public interface Set extends Collectionpublic interface List extends Collectionpublic class ArrayListextends AbstractList implements List,RandomAccess,Cloneable,Serializablepublic interface Map public class HashMap extends AbstractMap implements Map,Cloneable,Serializable,2023/10/17,Java集合类(下),26,掌握重点,Java数组有什么特点数组列表和数组有什么不同Collection接口及其实现类HashMap,HashSet,HashTable,2023/10/17,Java集合类(下),27,课后练习,遍历一个文件夹,将文件夹下所有的文件,目录,以及子目录下的文件,目录找出,并存储在List中.(提示:用递归算法)将某班所有的学生对象保存到List中,并遍历打印输出;将某班所有的学生对象保存到Map中,并遍历打印输出;将某班所有的学生对象保存到Map中,按名字取出学生对象.将JDK系统的属性按key,value保存到一个Hashmap中;说明HashMap和HashTable的区别.,

    注意事项

    本文(编写字符界面应用(中).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开