【问题标题】:What is the <K, V> thing in a hashmap, and how do I use it in my own class? [duplicate]哈希图中的 <K, V> 是什么,我如何在自己的类中使用它? [复制]
【发布时间】:2013-07-20 00:57:25
【问题描述】:

我一直试图简单地为声明的 部分所调用的内容命名,但没有成功。谁能告诉我它叫什么,我如何在自己的课堂上使用它?例如,我可能想尝试制作自己的收藏,并使用new MyThing&lt;String&gt;。任何帮助表示赞赏,谢谢!

【问题讨论】:

  • @StephenC 我不知道它叫泛型。
  • @Stephen 这应该保持开放,因为它确实使用了“泛型”这个词,这使得它成为一个不同的问题(“这叫什么?我该怎么做?”)
  • @user2507230 - 现在好了! (但说真的,过去 5 到 8 年编写的任何好的 Java 教科书都会涵盖这个主题。它是自 Java 5 以来 Java 的基础。)

标签: java generics collections hashmap instance


【解决方案1】:

这就是类的通用类型声明。例如,要指定映射将使用字符串作为键和整数作为值:

Map<String, Integer> mymap = new HashMap<String, Integer>();

【讨论】:

    【解决方案2】:

    它被称为泛型,下面是你如何使用它:

    public class MyClass<MyType> {
        private MyType myItem;
        public MyClass(MyType item) {
            myItem = item;
        }
        public MyType getMyItem() {
            return myItem;
        }
    }
    

    通常,类型的名称(在这种情况下为 MyType)是 T 用于“类型”,KV 用于“键”和“值”,但我只是让它更容易去理解。

    你可以这样做:

    MyClass<String> m = new MyClass<String>("potato");
    System.out.println(m.getMyItem()); // prints "potato"
    

    【讨论】:

    • 使用单个大写字母作为通用参数(不是其真实名称)更为传统。
    • @Tom 我知道,我正在编辑(用手机回答是困难 :P
    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2013-09-13
    • 2020-06-11
    • 2014-11-03
    • 2021-10-09
    • 1970-01-01
    • 2012-06-19
    • 2016-03-05
    相关资源
    最近更新 更多