E一Element(在集合中使用,因为集合中存放的是元素)

T- Type (Java类)
K - Key(键)
 V- Value (值)
N- Number(数值类型)
?-表示不确定的java类型(无限制通配符类型)

S、U、V- 2nd、3rd、4th types
Object-是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。
 


//示例1:使用T作为泛型类型参数,表示任何类型
public class MyGenericclass<T> {

private T myField;

public MyGenericClass(T myField) {

this.myField = myField;

}

public T getMyField() {

return myField;

//示例2:使用K、v作为泛型类型参数,表示键值对中的键和值的类型15
public class MyMap<K,V> {
private List<Entry<K,V>>entries;

public MyMap() {

entries = new ArrayList<>();

}

public void put(K key, v value) {

Entry<K, v> entry = new Entry<>(key,value);

entries.add(entry) ;

}

public v get(K key) {

for (Entry<K, v>entry : entries) {

if (entry-getKey( ).equals(key)) {

return entry. getvalue();

}

}

return null;


private class Entry<K,V>{

private K key;

private v value;

public Entry(K key,v value) {

this.key = key;

this.value = value;

}


public K getKey() {

return key;

}


public v getvalue() {

return value;


}
}
//示例3:使用E作为泛型类型参数,表示集合中的元素类型56public class MyList<E> {

private List<E> elements;


public MyList() {

elements = new ArrayList<>();

}

public void add(E element) {

elements.add(element);

}

public E get(int index){

return elements.get( index);

}
}


//示例4:使用object作为泛型类型参数,表示可以接受任何类型73
public class MyGenericclass {

private Object myField;

public MyGenericclass(object myField) {

this.myField = myField;

}


public object getMyField() {

return myField;

}

}


07-08 12:08