2019独角兽企业重金招聘Python工程师标准>>>

Java图书管理系统练习程序(四)

本部分主要介绍List的基本操作与Java中泛型的使用。

一、Java中泛型的使用

泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可称之为类型参数),然后在使用/调用时传入具体的类型(类型实参)。

泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

例1.编写一个类,将任意一个整数(int)按下面格式输出,“我是一个数:100”。

那么这个类很好写,如下

public class OutNumber {private int n;public OutNumber(int n){this.n=n;}public void printN(){System.out.println("我是一个数 :"+n);}
}

那么接下来,我们要再写一个类,将一个字符串(String)也要按以下的格式输出,那么这个类也很简单,代码如下:

public class OutSting {private String n;public OutSting(String n){this.n=n;}public void printN(){System.out.println("我是一个数:"+n);}
}

仔细分析以上两个类,我们发现,这两个类对数据处理的方法是相同的,只是处理的类型是不同的。如果我们可以写一个类,定义类时,并不指明数据的类型,在使用的时候再指明类型。那么我们可以采用以下的方式。

public class OutNumber<E> {private E n;public OutNumber(E n){this.n=n;}public void printN(){System.out.println("我是一个数:"+n);}
}
public class Demo1 {public static void main(String[] args) {OutNumber<Integer> o1=new OutNumber<>(10);o1.printN();OutNumber<String> o12=new OutNumber<>("字符串 ");o12.printN();}
}

这就是泛型的一种使用,称为泛型类

1.泛型类

class 类名称 <泛型标识>{

private 泛型标识 成员变量名;

......

}

注意:

泛型的类型参数只能是类类型(包括自定义类),不能是简单类型(比如int与Integer)

传入的实参类型需与泛型的类型参数类型相同,

如OutNumber<Integer> o1=new OutNumber<>(10);

2.泛型接口

其使用方法与泛型类基本相同。

在本练习程序中,主要使用了泛型类和泛型接口。

二、List的基本操作

在本练习程序中,如果采用数组存放若干个用户的信息,在声明数组时,就必须同时声明数组的长度,即我们的程序只能存储多少个用户,如果我们声明的过大,会造成内存的浪费,如果我们声明的数组太小,即长度过短,会造成数据溢出的错误。

而List可以解决这个问题。它的大小是动态可改变的,其存储的数据类型也是多样的。例如以下代码

List<Student> lists=new ArrayList<>();

在以上代码中,List是一个接口,ArrayList是该接口的一个实现类。通过以上代码,我们即创建一个存储Student对象的集合。

1.向集合中添加、删除元素

Student student=new Student(1,"张三丰","武当山");
lists.add(student);//将student对象添加到集合中
lists.remove(student);//将student对象从集合中移除

2.判断List中是否包含某个元素

lists.contains(student)

3.根据元素在集合中的索引值取得元素

Student stu=lists.get(0);

4.取得对象在集合中的索引值

lists.indexOf(student);

5.判断集合是否为空

lists.isEmpty();

以上是在本练习程序中,用到的有关List集合的相关内容。其它的方法,可以参考Java API文档。

转载于:https://my.oschina.net/u/3537796/blog/2413986

Java图书管理系统练习程序(四)相关推荐

  1. java图书管理系统技术难度_Java图书管理系统练习程序(一)

    Java图书管理系统练习程序 第一部分 该部分主要实现命令行方式的界面与无数据库访问的练习,通过本练习.主要掌握Java的基础知识与面向对象程序设计思想.面向接口编程技术的知识与运用. 一.练习程序功 ...

  2. 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档)

    计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  3. 视频教程-手把手实现Java图书管理系统(附源码)-Java

    手把手实现Java图书管理系统(附源码) 南京大学软件工程硕士,曾就职于擎天科技.中软国际.华为等上市公司,擅长Java开发.Web前端.Python爬虫.大数据等领域技术. 全栈工程师,从事软件开发 ...

  4. 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档)

    计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 计算机毕业设计Java课堂管理系统小程序用户端(源码+mysql数据库+系统+lw文档) 本源码技术栈: 项目 ...

  5. 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA课堂管理系统小程序用户端mybatis+源码+调试部署+系统+数据库+lw 本源 ...

  6. [附源码]计算机毕业设计JAVA图书管理系统

    [附源码]计算机毕业设计JAVA图书管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...

  7. java图书管理系统源码

    java图书管理系统源码 系统主要功能 读者:登录注册,借阅还书,查询书籍,查看当前借阅信息以及历史借阅信息,查看.查询读者借阅榜以及借阅书籍借阅榜,问题反馈以及查询反馈结果等功能. 管理员:对图书. ...

  8. 我的第一个项目----Java图书管理系统

    项目参考自:http://www.java1234.com/a/yuanchuang/swing2/ 项目视频及代码下载地址:链接:http://pan.baidu.com/s/1pLpQw2J 密码 ...

  9. java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...

    图书管理系统java版 本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出 ...

最新文章

  1. 关于手机横屏打开相机或者相册闪退解决方案
  2. win10下Rabbitmq的安装和配置
  3. 《数学之美》读书笔记和知识点总结(一)
  4. SpringAop通知
  5. 走进我的交易室06_交易
  6. ResponsibleChain(责任链模式)
  7. python调用QQ音乐API
  8. 任正非,“血洗”华为
  9. Elsevier LaTeX 模板中参考文献没有序号,且文章引用不是序号引用
  10. 电脑用久了卡,学会这四招解决你的电脑卡顿问题!
  11. 用代码实现一场烟花盛宴,提前祝大家2022新春快乐
  12. 清华大学,北京大学,浙江大学公布计算机考研校线!有的不变,有的下降5分!...
  13. word中最后一行留白太多
  14. 光学系统中的光栅建模——实例讨论
  15. Matlab多无人艇协同避碰情况下的仿真探索
  16. 模式识别学习笔记(2)——贝叶斯决策
  17. 【国君非银】TAMP研究之一:它的美国起源史
  18. html登录 页面连接数据库,连接数据库实现登录页面
  19. 动环监测哪个比较好?国内一线动环监控系统厂家排名
  20. 让百万职场人爱不释手的办公工具,“TOM随心邮”究竟有何优势?

热门文章

  1. php interbase,PHP: Firebird/InterBase - Manual
  2. php br2nl,收藏一些规范化输入输出的PHP函数
  3. python集合应用场景_十、python 集合的定义与使用
  4. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur (SCC缩点,SPFA最长路,枚举反边)
  5. 译注(3): NULL-计算机科学上最糟糕的失误
  6. JAVAAPI学习之Calendar类;Calendar类set()、add()、roll()方法区别
  7. mac下设置redis开机启动方法
  8. 2013年最值得我们学习的网页作品示例【系列六】
  9. 【转】DOS下文件传输---初识TCP网络编程改版
  10. C#图像处理基础概念知识