Java学习笔记——应用矢量和迭代器来实现类似链表的功能
来源:互联网 发布:福州理工学院知乎 编辑:程序博客网 时间:2024/05/24 05:51
Java中没有指针,但有些对象是实现指针的功能的。如迭代器和矢量来实现链表的指针的功能,并且可以实现从两个方向来实现相关的操作。这里实现的是将Person定义在同一个Java文件中,也可以public定义Person放在独立的java 文件中。具体实现代码如下:
import java.io.*;import java.nio.*;import java.util.*;public class TryIterable {/** * @param args */public static void main(String[] args) {// TODO 自动生成方法存根Person aPerson = null;Vector<Person> filmCast = new Vector<Person>();/*Vector 可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用。 创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况。可以考虑使用向量类。 */while (true) {aPerson = readPerson();if (aPerson == null) {break;}filmCast.add(aPerson);}int count=filmCast.size();System.out.println("You added "+count+(count==1?" person":" people")+" to the cast:");ListIterator<Person> thisLot=filmCast.listIterator();/*列表迭代器,可以让编程者从任何方向进行访问,类似于队列,有一系列的函数来实现相应的操作*/while(thisLot.hasNext()){System.out.println(thisLot.next());}System.out.println("\nThe vector currently has room for "+(filmCast.capacity()-count)+" more people.");}static Person readPerson(){String firstName=null;String surname=null;System.out.println("\nEnter first name or ! to end:");try{firstName=keyboard.readLine().trim();//读取输入数据,无空格,读取名字if(firstName.charAt(0)=='!'){return null;//确定终止符}System.out.println("Enter surname:");surname=keyboard.readLine().trim();//读取姓氏}catch(IOException e){System.err.println("Error reading a name.");e.printStackTrace();System.exit(1);}return new Person(firstName,surname);//返回读取对象}static BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));//建立输入读取} class Person {//定义人的对象public Person(String firstName, String surname) {this.firstName = firstName;this.surname = surname;}@Overridepublic String toString() {return firstName + " " + surname;}private String firstName;private String surname;}具体实现结果如下:
0 0
- Java学习笔记——应用矢量和迭代器来实现类似链表的功能
- ArcGIS实现矢量数据的拼接(学习笔记)
- 菜鸟学习c++—实现系统权限管理功能(类的public和private应用)
- Java利用接口和类来实现类似函数指针的功能
- Java学习笔记——链表的泛型实现和序列化读写
- android学习笔记——另一个TabHost实现:类似点心省点的Tab
- 实现类似“另存为”的功能
- Delphi中实现C++/Java类似静态变量的功能
- Delphi中实现C++/Java类似静态变量的功能
- Delphi中实现C++/Java类似静态变量的功能
- 自定义java类实现类似spring的依赖注入功能
- JAVA--实现类似C#输入功能的Console类
- java中实现类似函数指针的功能
- C++中实现类似java中接口的功能
- java如何实现类似c语言的条件汇编功能
- java中实现类似函数指针的功能
- java中实现类似函数指针的功能
- java中实现类似函数指针的功能
- 仿360工具栏
- NSIS开始安装时检查**.exe是否正在运行
- shader实现灰阶图
- mybatis spring 配置文件问题
- 第17周项目 1 数组排序 指针
- Java学习笔记——应用矢量和迭代器来实现类似链表的功能
- 嘿嘿,今天要吃汤圆吃咯
- 第十七周 项目6.5 读取文件中数据并处理
- 第十七周项目4——1 该年第几天
- vb.net中将图片存入SQL Server 2000并能读出来使用
- Android 框架练成 教你打造高效的图片加载框架
- jQuery选择器总结
- 外网如何访问本地tomcat web服务器
- 第17周项目--