目录
1.集合框架的介绍
1.1Collection示例
2.Map示例
3.泛型的理解
3.1简答题
1.集合框架的介绍
简单来说,java集合框架就是java写好的一些数据结构,并定义在java.until包下面。并且以后的集合,都需要导入这个包。
下面是我们经常遇到的一些类和接口:
1.1Collection示例
2.Map示例这里我们强制转化数组类型会报错,原因是在java中,Object是所有class类的父类,而Object[ ]也是Object的子类,因此Object[ ]与其他类之间属于平级关系,并不能进行相互转换
3.泛型的理解
假设我们先简单写一个顺序表:
class MyArrayList {
private int[] elem;
private int usedSize;
public MyArrayList() {
this.elem = new int[10];
}
public void add(int val) {
this.elem[usedSize] = val;
usedSize++;
}
public int get(int pos) {
return this.elem[pos];
}
但是问题来了:这个顺序表只能放int类型的数据,而不能放我们想放的任意数据,那我们如何改进呢?因为Object[ ]类是所有类的父类,我们改成这个类可以吗?
class MyArrayList {
private Object[] elem;
private int usedSize;
public MyArrayList() {
this.elem = new Object[10];
}
public void add(Object val) {
this.elem[usedSize] = val;
usedSize++;
}
public Object get(int pos) {
return this.elem[pos];
}
但是这样改完之后,我们可以放任何数据,但每次取出数据的时候,我们都需要强制类型转换,就特别麻烦。那我们能不能指定这个顺序表的类型,此时我们就引入了泛型的概念:
class MyArrayList{ private E[] elem; private int usedSize; public MyArrayList() { this.elem = (E[])new Object[10]; //this.elem = new E[10];//这个是错的代码,因为泛型不能实例化泛型 //上述代码相当于 private E[] elem = new E[10]; } public void add(E val) { this.elem[usedSize] = val; usedSize++; } public E get(int pos) { return this.elem[pos]; }
此时加入
因此泛型就可以指定放我们想放的类型。
3.1简答题
泛型是怎么编译的:
我们先看个简单例子:
此时我们看到打印的并没有



