Java编程技术基础.ppt





《Java编程技术基础.ppt》由会员分享,可在线阅读,更多相关《Java编程技术基础.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java编程技术基础编程技术基础计算机科学与软件工程系计算机科学与软件工程系Java集合框架集合框架集合集合Java系列课程系列课程集合的功能是保存和管理对象。Collection:一组独立的元素,通常这 些元素都服从某种规则。Map:一组成对的“键值对”对象。keyvaluevaluevaluevaluekeyvaluekeyvalueJava集合框架集合框架集合集合Java系列课程系列课程集合能够动态改变。String s=“java”;ArrayList list=new ArrayList();list0 slist.add(s);1 slist.add(s);0 s0 slist.r
2、emove(1);Java集合框架集合框架集合的缺陷:未知类型集合的缺陷:未知类型Java系列课程系列课程 容器只保存对Object的引用,Object是所有类的基类,因此容器可以保存任何类型的对象;但是不包括基本类型,因为它们不是真正的对象,没有继承任何东西。产生以下问题:产生以下问题:因为在将对象的引用加入容器时就丢失了类型的信息,所以对于添入容器的对象没有类型限制。因为丢失了类型信息,所以容器只知道它保存的是指 向对象的引用。则在使用容器中的元素前必须要做类 型转换,转换为正确的类型。Java集合框架集合框架集合的缺陷:未知类型集合的缺陷:未知类型Java系列课程系列课程Cat和Dog被
3、放入容器,然后再取出来:public class CatsAndDogs public static void main(String args)List cats=new ArrayList();for(int i=0;i7;i+)cats.add(new Cat(i);cats.add(new Dog(7);for(int i=0;icats.size();i+)(Cat)cats.get(i).id();抛出类型转换异常List catList=new ArrayList();Java集合框架集合框架集合框架集合框架Java系列课程系列课程Java集合框架集合框架Collection接口
4、接口Java系列课程系列课程Java集合框架集合框架Collection接口接口Java系列课程系列课程Java集合框架集合框架List接口接口Java系列课程系列课程List(interface)次序是List最重要的特点;它确保维护元素特 定的顺序。List为Collection添加了许多方法,使得能够向List中间插入和移出元素。ArrayList 由数组实现的List。它允许对元素进行快速随 机访问,但是向List中间插入与移除元素的速 度很慢。LinkedList 对顺序访问进行了优化,向List中间插入与移 除的开销较小,随机访问则相对较慢。具有 addFirstaddFirst(
5、)()、addLastaddLast()()、getFirstgetFirst()()、getLastgetLast()()、removeFirstremoveFirst()()、removeLastremoveLast()()等方法,这些方法使 得LinkedList可以当作堆栈、队列使用。Java集合框架集合框架List接口接口Java系列课程系列课程 所有的List中只能容纳单个不同类型的对象组成的表,而不是KeyValue键值对。所有的List中可以有相同的元素。所有的List中可以有null元素。基于Array的List(Vector,ArrayList)适合查询,而 LinkedL
6、ist(链表)适合添加,删除操作。Java集合框架集合框架ArrayListJava系列课程系列课程Java集合框架集合框架ArrayListJava系列课程系列课程Java集合框架集合框架求图形面积求图形面积Java系列课程系列课程public static String loadConfig()String configs=new String22;String str=null;int i=0;.使用ArrayList来满足图形的动态扩展Java集合框架集合框架求图形面积求图形面积Java系列课程系列课程/config.txt1=com.scujcc.Square2=com.scujcc
7、.Circle对配置文件建模实体:配置文件实体:配置文件实体:配置文件项实体:配置文件项1com.scujcc.Square2com.scujcc.CircleJava集合框架集合框架求图形面积求图形面积Java系列课程系列课程对配置文件建模Java集合框架集合框架求图形面积求图形面积Java系列课程系列课程/config.txt1=com.scujcc.Square2=com.scujcc.Circle对配置文件建模ConfigItem实例1:id=1className=com.scujcc.SquareConfigItem实例2:id=2className=com.scujcc.Circl
8、eConfigJava集合框架集合框架求图形面积求图形面积Java系列课程系列课程Java集合框架集合框架求图形面积求图形面积Java系列课程系列课程public class ConfigItem private String id;private String className;public String getId()return id;public void setId(String id)this.id=id;public String getClassName()return className;public void setClassName(String className)t
9、his.className=className;Java集合框架集合框架Java系列课程系列课程public class Config private static List configs=null;static configs=new ArrayList();try BufferedReader br=new BufferedReader(new FileReader(new File(D:config.txt);String str=null;ConfigItem configItem=null;while(str=br.readLine()!=null)configItem=new C
10、onfigItem();configItem.setId(str.split(=)0);configItem.setClassName(str.split(=)1);configs.add(configItem);静态程序区初始化配置项集合定义配置项集合将构建好的配置项加入集合针对每一行配置数据,构建与之对应的配置项对象Java集合框架集合框架Java系列课程系列课程 catch(IOException e)e.printStackTrace();public static ConfigItem getConfigItemByID(String id)ConfigItem configItem
11、=null;for(int i=0;iconfigs.size();i+)if(configs.get(i).getId().equals(id)configItem=configs.get(i);break;return configItem;Java集合框架集合框架Java系列课程系列课程public class Graphic public static void main(String args)double area=0;Sharp sharp=null;Scanner scanner=new Scanner(System.in);ConfigItem item=null;try w
12、hile(scanner.hasNext()item=Config.getConfigItemByID(scanner.next();String className=item.getClassName();sharp=(Sharp)Class.forName(className).newInstance();sharp.setLength(scanner.nextDouble();puteArea();area=sharp.getArea();System.out.println(Area is +area);根据ID从集合中找到配置项对象根据完全限定类名加载类并产生实例Java集合框架集合
13、框架集合的遍历集合的遍历-for循环循环Java系列课程系列课程public ConfigItem getConfigItemByID(String id)ConfigItem configItem=null;for(int i=0;iconfigs.size();i+)if(configs.get(i).getId().equals(id)configItem=configs.get(i);break;return configItem;对集合的遍历/迭代Java集合框架集合框架集合的遍历集合的遍历 -迭代器迭代器Java系列课程系列课程Iterator:迭代器是一个对象,它的工作就是遍历并
14、选择 序列中的对象。获取Iterator:使用方法Iterator()要求容器返回一个 Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。Java集合框架集合框架迭代器迭代器Java系列课程系列课程public class CatsAndDogs private static void main(String args)List cats=new ArrayList();for(int i=0;i7;i+)cats.add(new Cat(i);Iterator e=cats.iterator();while(e.hasNext()System.out.
15、println(e.next();取得一个对象容器,遍 历容器以对每个对象执 行动作。Object.toString()Java集合框架集合框架迭代器方式迭代器方式Java系列课程系列课程public ConfigItem getConfigItemByID(String id)ConfigItem configItem=null;Iterator ite=configs.iterator();while(ite.hasNext()configItem=(ConfigItem)ite.next();if(configItem.getId().equals(id)return configIte
16、m;return configItem;Java集合框架集合框架LinkedListJava系列课程系列课程Java集合框架集合框架LinkedListJava系列课程系列课程Java集合框架集合框架LinkedListJava系列课程系列课程使用使用LinkedList模拟栈模拟栈Java系列课程系列课程import java.util.*;public class StackL private LinkedList list=new LinkedList();public void push(Object v)list.addFirst(v);public Object top()retu
17、rn list.getFirst();public Object pop()return list.removeFirst();public static void main(String args)StackL stack=new StackL();for(int i=0;i10;i+)stack.push(new Integer(i);System.out.println(stack.top();System.out.println(stack.top();System.out.println(stack.pop();System.out.println(stack.pop();Syste
18、m.out.println(stack.pop();使用使用LinkedList模拟队列模拟队列Java系列课程系列课程import java.util.*;public class Queue private LinkedList list=new LinkedList();public void put(Object v)list.addFirst(v);public Object get()return list.removeLast();public boolean isEmpty()return list.isEmpty();public static void main(Strin
19、g args)Queue queue=new Queue();for(int i=0;i10;i+)queue.put(Integer.toString(i);while(!queue.isEmpty()System.out.println(queue.get();Java集合框架集合框架Set接口接口Java系列课程系列课程Set(interface)存入Set的每一个元素都必须是唯一的,因为 Set不保存重复元素。加入Set的Object必须定 义equals()方法以确保对象的唯一性。Set与 Collection有完全一样的接口。Set接口不保证 维护元素的次序。HashSet 为快速
20、查找而设计的Set,存入HashSet的对象 必须定义hashCode()。TreeSet 保存次序的Set,底层为树结构。使用它可以 从Set中提取有序的序列。LinkedHashSet 具有HashSet的查询速度,且内部使用链表维(JDK1.4)护元素的顺序(插入的次序)。在用迭代器 遍历时,会按元素插入的次序显示。Java集合框架集合框架HashSetJava系列课程系列课程Java集合框架集合框架HashSetJava系列课程系列课程Java集合框架集合框架HashSetJava系列课程系列课程public class Config private Set configs=null;
21、public Config()configs=new HashSet();Java集合框架集合框架HashSetJava系列课程系列课程public void loadConfig()String str=null;ConfigItem configItem=null;try File configFile=new File(D:SharpConfig.txt);FileReader fr=new FileReader(configFile);BufferedReader br=new BufferedReader(fr);while(str=br.readLine()!=null)confi


- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 编程 技术 基础

限制150内