java集合框架

编程知识 更新时间:2023-04-08 00:01:26

  学习java很重要的一个知识就是集合框架,集合框架就像一个容器(就像装花生的罐子,可以把很多的对象装进去)。

  java中有很多种集合类型,比如ArrayList(列表),Map(键-值对表),Set(集合,类似于数学中的集合)。

  最常见的集合类型就是ArrayList,跟数组类似,但是数组需要预先给定数组长度,而ArrayList不需要,它的实现有个自动扩容机制,会自动扩容。

  ArrayList结合java中的“泛型”使用,什么是泛型呢,我的理解就是在声明ArrayList容器的时候,指定这种容器能装入什么对象(可以装入子类对象),只能装入这种对象,如果不是这种对象的话就会报错。

  集合框架类一般都可以支持泛型,那么可不可以让普通的类也支持泛型呢?答案是可以的,在类后加上<T>表示该类支持泛型,T是Type的缩写,是一个约定俗成,当然也可以用A,B,C之类的表示,但没必要,T简单明了。

比如用双向链表设计一个栈,在声明变量的时候放入一个Hero对象,那么这个栈就只能放入Hero对象了。

package generic;
   
import java.util.HashMap;
import java.util.LinkedList;
 
import charactor.Hero;
import property.Item;
   
public class MyStack<T> {
   
    LinkedList<T> values = new LinkedList<T>();
       
    public void push(T t) {
        values.addLast(t);
    }
   
    public T pull() {
        return values.removeLast();
    }
   
    public T peek() {
        return values.getLast();
    }
       
    public static void main(String[] args) {
        //在声明这个Stack的时候,使用泛型<Hero>就表示该Stack只能放Hero
        MyStack<Hero> heroStack = new MyStack<>();
        heroStack.push(new Hero());
        //不能放Item
        heroStack.push(new Item());
         
        //在声明这个Stack的时候,使用泛型<Item>就表示该Stack只能放Item
        MyStack<Item> itemStack = new MyStack<>();
        itemStack.push(new Item());
        //不能放Hero
        itemStack.push(new Hero());
    }
   
}

  回到ArrayList,遍历这个ArrayList,有三种方法,分别是:for循环,iterator迭代器,for:增强for循环。

注意:只能在迭代器中进行元素的删除,其余两种方法中如过删除会出问题。

Map和Set都是接口,它们的一个实现分别是HashMap和HashSet

HashMap是一个键值对,键不可以重复,值可以重复,什么是键-值对,就是一个关键字对应一个值。

HashSet类似数学中的集合,同一个值只能出现一次。

 

 

更多推荐

java集合框架

本文发布于:2023-04-08 00:01:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/c6e7fc6fa43db0bed60ef195157d5daf.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 55231文章数
  • 14阅读数
  • 0评论数