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

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

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

1、Java中泛型的使用对象

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

泛型的本质是为了参数化类型(在不建立新的类型的状况下,经过泛型指定的不一样类型来控制形参具体限制的类型)。也就是说在泛型使用过程当中,操做的数据类型被指定为一个参数,这种参数能够用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。接口

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

那么这个类很好写,以下rem

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();
    }
}

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

1.泛型类

class 类名称 <泛型标识>{

    private 泛型标识 成员变量名;

......

}

注意:

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

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

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

2.泛型接口

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

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

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文档。

相关文章
相关标签/搜索