Java 集合与泛型

作者: DeeJay_Y | 来源:发表于2019-02-22 23:48 被阅读7次

泛型编程

  • 为什么需要泛型
    当如果有不同数据类型的数据要进行相同操作的时候,就可以使用泛型
  • 使用举例
    我们用ArrayList来实现一个简单的stack数据结构,其中这个stack数据结构可以接收任意类型的数据对象,并且拥有pushpop方法。
public class testStack<T> { // 这里的T表示type 表示泛型  任意类型
    ArrayList<T> store = new ArrayList<T>();

    public void push(T item) {
        store.add(item);
    }

    public T pop() {
        T lastElement = store.get(store.size() - 1);
        store.remove(store.size() - 1);
        return lastElement;
    }
}

泛型解决的问题是:代码逻辑一样,只是数据类型不一样, 这时候就可以使用泛型。

上述例子中的testStack类也被称为泛型类,内部的public T pop(){}也被称为泛型方法,当单独定义泛型方法的时候一般用E来代表Element。

集合

详细结构表
  • 主要类型
    集合主要类型有Collection和Map

Collection

Collection是一个接口,是List, Set以及Queue等接口的父接口。

任何实现了Collection接口的集合都支持增删改查。

  • List
    • 有序并且可以重复
    • 可以精确的控制每个元素的插入位置,或删除某个位置元素
    • 常用的子类有:ArrayListLinkedListVectorStack
  • Set
    • 不能加入重复元素,无序
    • 常用的子类有:HashSetTreeSet

Map

Map中的元素是一种Key-Value形式的映射。Key不可重复,Value可以重复。

  • HashMap
    • 基于哈希表实现的一个Map的子类。
    • 无序排列,并且可以有并且也只可以有一个Key为null

对于链表来说,插入和删除的时间复杂度为O(1)(因为只需要调整指针就可以),但是查找特定的元素或者查找第N个元素的复杂度为O(n)

相关文章

  • 《Kotlin入门实战》CH8 | 泛型

    泛型 泛型是在Java5中引入的,泛型让集合框架可以重用代码,在没有泛型时候,集合框架中存储数据的类型都是Obje...

  • Java 集合与泛型

    泛型编程 为什么需要泛型当如果有不同数据类型的数据要进行相同操作的时候,就可以使用泛型 使用举例我们用ArrayL...

  • Java一泛型

    目录 一、设计背景 二、什么是泛型?泛型的作用? 三、泛型的原理 四、使用泛型 一、设计背景 Java集合(Col...

  • Java泛型总结

    Java泛型总结 泛型使用 从Java5开始引入了“参数化类型”的概念,允许在创建集合的时候指定集合元素的类型 J...

  • JDK1.5后增加了泛型,那么为什么要有泛型呢?我们该如何自定义

    本篇主要讲解java泛型的理解、集合中简单使用泛型、自定义泛型结构(包括类、接口、方法)。 一、什么是泛型? 通俗...

  • 泛型

    与Java泛型相同,Kotlin同样提供了泛型支持。对于简单的泛型类、泛型函数的定义,Kotlin 与 Java ...

  • java泛型、泛型的基本介绍和使用

    现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java...

  • [转载] java泛型(一)、泛型的基本介绍和使用

    现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java...

  • 深入学习java系列之集合框架

    集合概述 java 集合部分主要有 java 集合框架相关的内容和 java 泛型相关的内容。 集合是用来做什么的...

  • 泛型集合与非泛型集合,泛型

    ArrayList//非泛型集合 非泛型集合添加元素演示 public void Test1(){ ArrayLi...

网友评论

    本文标题:Java 集合与泛型

    本文链接:https://www.haomeiwen.com/subject/qdoeeqtx.html