Java入门—集合-阿里云开发者社区

开发者社区> 开发与运维> 正文

Java入门—集合

简介: 应用场景: 无法预测存储数据的数量 同时存储具有一对一关系的数据 需要进行数据的增删 数据重复问题 集合概览 image.png List(列表) List是元素有序并且可以重复的集合,称为序列。

应用场景:

  1. 无法预测存储数据的数量
  2. 同时存储具有一对一关系的数据
  3. 需要进行数据的增删
  4. 数据重复问题

集合概览

img_0f1ed916e37dfc46075d7e1a8742421f.png
image.png

List(列表)

  • List是元素有序并且可以重复的集合,称为序列。
  • List可以精确控制每个元素的插入位置,或者删除某个为止的元素。
  • List两个主要实现类是ArrayList 和 LinkedList。

ArrayList 和 LinkedList 两者的数据存储方式是不同的:

  • ArrayList :和数组相似,但是长度可以动态增长,在内存中的一片连续存储空间进行存储
  • LinkedList:本身是链表

Set

无序、不重复集合。

HashSet
  • HashSet是Set的一个重要实现类,称为哈希集。
  • HashSet中元素无需并且不可重复。
  • HashSet中只允许一个null元素。
  • 具有良好的存取和查找性能。

HashSet底层是hashMap。

遍历HashSet需要使用迭代器方法。

Iterator(迭代器)
  • Iterator接口可以以统一的方式对各种集合元素进行遍历
  • hasNext()方法检测集合中是否还有下一个元素(返回ture或false)
  • next() 方法返回集合中的下一个元素
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;

public class TestIterator {
    public static void main(String[] args){
        Set s = new HashSet();
        s.add("allen");
        s.add("ming");
        s.add("hello");
        Iterator it = s.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}

Map

  • Map中的数据是以键值对(key-value)形式存储的
  • key-value以Entry类型的对象实例存在
  • 通过key可以快速查找value值
  • 不能包含重复的建(key值必须唯一)
HashMap
  • 基于哈希表的Map接口实现
  • 允许使用null值和null键值
  • HashMap中Entry对象时无序排列的

总结

ArrayList
  • 底层由数组实现
  • 元素有序且可以重复
  • 可以动态增长,以满足应用程序的需求
  • 元素值可以为null
HashSet
  • 元素无序并且不可以重复
  • 只允许一个null元素
HashMap
  • 键不能重复
  • 允许使用null值和null键
  • HashMap中的Entry对象是无序排列的
Iterator(迭代器)
  • Iterator接口以统一的方式对各种集合元素进行遍历


    img_58b1a3e3555955498d5d9788439549ae.png
    image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章