泛型中 K T V E?Object 等分别代表什么含义?

目录

面试回答

知识扩展

代码示例


面试回答

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 作为泛型类型参数,表示键值对中的键和值的类型
public class MyMap<K,V>{
    private List<Entry<K,V>> entries;

    public MyMap(){
        entries=new ArrayList<>();
    }

    public void put(K key,V value){
        Entry 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 作为泛型类型参数,表示集合中的元素类型
public class MyList<E>{
    private List<E> elements;

    public MyList(){
        elements=new ArrayList<>();
    }

    public void add(E e){
       elements.add(e);
    }

    public E  get(int index){
        return elements.get(index);
    }

}

// 示例4:使用 Object 作为泛型类型参数,表示可以接受任何类型
public class MyGenericClass{
    private Object myField;

    public MyGenericClass(Object myField){
        this.myField=myField;
    }

    public Object getMyField(){
        return myField;
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值