Java之集合框架

主要是以下两大类

先看下框架图:

这里写图片描述

我们主要列举一下集中常用的:

  • 一、 Collection< E >(接口)

    • 1.1 List< E >(接口)(继承Collection接口,允许重复,以元素的安插顺序来排列)
      • 1.1.1 ArrayList< E >
      • 1.1.2 LinkedList< E >
      • 1.1.3 Vector< E >
    • 1.2 Set< E >(接口)(继承Collection接口,不允许重复,有自己内部的一套排列方式)
      • 1.2.1 HashSet< E >
      • 1.2.2 LinkedHashSet< E >
  • 二、Map< K , E >(接口)(是一组成对键-值存放,不允许有重复的键,有自己的排列方式)
    • HashMap< K , V >
    • LinkedHashMap< K , V >


接下来就详细介绍一下上面列举出来的

ArrayList< E > (基于数组,查询方便,插入麻烦)

    1. 常用到的方法:
      • 1.1 add(E e):将指定的元素添加到此列表的尾部
      • 1.2 clear() :移除此列表中的所有元素
      • 1.3 get(int index) : 返回此列表中指定位置上的元素。
      • 1.4 size() : 返回此列表中的元素数。

例:

import java.util.ArrayList;
public class T_ArrayList {
    ArrayList<String> list = new ArrayList<String>();

    public void genData() {
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
    }

    public void printData() {
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));

        }
    }

    public T_ArrayList() {
        genData();
        printData();
    }

    public static void main(String[] args) {
        new T_ArrayList();
    }
}

LinkedList< E >(基于链表,查询麻烦,插入方便)

    1. 常用到的方法:(基本上和ArrayList一样)
      • 1.1 add(E e):将指定的元素添加到此列表的尾部
      • 1.2 clear() : 移除此列表中的所有元素
      • 1.3 get(int index) :返回此列表中指定位置上的元素。
      • 1.4 size() : 返回此列表中的元素数。

Vector< E >(基于数组,基于线程安全)

    1. 常用到的方法:(基本上和ArrayList一样,)
      • 1.1 add(E e):将指定的元素添加到此列表的尾部
      • 1.2 clear() :移除此列表中的所有元素
      • 1.3 get(int index) : 返回此列表中指定位置上的元素。
      • 1.4 size() : 返回此列表中的元素数。

HashSet< E >(此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。)

    1. 常用到的方法:
      • 1.1 add(E e):将指定的元素添加到此列表的尾部
      • 1.2 clear()
        移除此列表中的所有元素
      • 1.3 iterator()
        • 1.3.1 Iterator< E >接口常用方法:
          • hasNext() : 如果仍有元素可以迭代,则返回 true。
          • next() :返回迭代的下一个元素。
      • 1.4 size()
        返回此列表中的元素数。

例:

package com.cwt.Collection.List.ArrayList;

import java.util.HashSet;
import java.util.Iterator;

public class T_HashSet {
    HashSet<String> hashSet = new HashSet<String>();

    public T_HashSet() {
        genData();
        printData();
    }

    public void genData() {
        hashSet.add("aaa");
        hashSet.add("aaa");
        hashSet.add("bbb");
        hashSet.add("ccc");
        hashSet.add("ddd");
    }

    public void printData() {
        // 在这儿写两种打印方式for循环和Iterator迭代器
        System.out.println("for循环打印:");
        for (Object obj : hashSet) {
            System.out.println(obj);
        }
        System.out.println("Iterator迭代器打印:");
        // 获得一个迭代器
        Iterator<String> ite = hashSet.iterator();
        while (ite.hasNext()) {// 确定集合还有元素
            System.out.println(ite.next());
        }
    }
}

运行结果:
这里写图片描述

总结:

  • 通过结果可以看出,HashSet中不允许有重复的元素出现
  • 打印方式可以是for(是为了简化迭代器),也可以是迭代器

LinkedHashSet< E >(基于链表)

    1. 常用到的方法:
      • 1.1 add(E e):将指定的元素添加到此列表的尾部
      • 1.2 clear()
        移除此列表中的所有元素
      • 1.3 iterator()
        • 1.3.1 Iterator< E >接口常用方法:
          • hasNext() : 如果仍有元素可以迭代,则返回 true。
          • next() :返回迭代的下一个元素。
      • 1.4 size()
        返回此列表中的元素数。

HashMap< K , V >

    1. 常用到的方法:

      • 1.1 put(K key, V value) :在此映射中关联指定值与指定键。
      • 1.2 keySet() :返回此映射中所包含的键的 Set 视图。
      • 1.3 get(Object key) : 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
      • 1.4 size() :返回此映射中的键-值映射关系数。
      • 1.5 remove(Object key) :从此映射中移除指定键的映射关系(如果存在)。

      例:

package com.cwt.Collection.List.ArrayList;

import java.util.HashMap;
import java.util.Set;
public class T_HashMap {
    HashMap<String, Shape> hashMap = new HashMap<String, Shape>();

    public T_HashMap() {
        genData();
        printData();
    }

    public void genData() {
        hashMap.put("1", new ShapeLine(0, 0, 0, 0, null, null));
        hashMap.put("1", new ShapeLine(1, 0, 0, 0, null, null));
        hashMap.put("2", new ShapeLine(2, 0, 0, 0, null, null));
        hashMap.put("3", new ShapeLine(3, 0, 0, 0, null, null));
        hashMap.put("4", new ShapeLine(4, 0, 0, 0, null, null));
        hashMap.put("5", new ShapeLine(5, 0, 0, 0, null, null));
    }

    public void printData() {
        Set<String> set = hashMap.keySet();
        for (Object obj : set) {
            System.out.println(hashMap.get(obj));
        }
    }
}

运行结果:
这里写图片描述

总结:
通过结果来看,是不允许有键重复的,如果发现有重复,则后面的一个将前面一个覆盖;


LinkedHashMap< K , V >

    1. 常用到的方法:
      • 1.1 put(K key, V value) :在此映射中关联指定值与指定键。
      • 1.2 keySet() :返回此映射中所包含的键的 Set 视图。
      • 1.3 get(Object key) : 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
      • 1.4 size() :返回此映射中的键-值映射关系数。
      • 1.5 remove(Object key) :从此映射中移除指定键的映射关系(如果存在)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值