java容器(集合)

前言:

博主目前还没系统学习数据结构,因此本篇着重于集合的基本使用,并不会追根溯源。学习对象为Map、List接口和ArrayList、HashMap类。学习目的以使用为主,不会赘述过多原理


什么是容器?

Java中的容器主要有Collection和Map,它们都是顶层接口,都位于java.util包下,实际使用的容器都是基于这两个接口延伸出来的。


Map接口:

Map是从键到值的映射, 键不允许重复,每个键最多能映射一个值,值可以重复

键值映射就相当于一个人,有名字,有性别,有年龄,他的名字、性别、年龄都是唯一且确定的


List接口:

  • 存储有序的、可重复的数据。相当于一个动态数组
  • 每个元素都有对应的整型的顺序索引。可根据序号存取容器中的元素。

List接口继承的是Collection接口,所以继承了Collection接口中的所有方法:
Collection接口常用方法

public boolean add(E e);  //添加元素到集合
public boolean addAll(Collection<? extends E> c); //存放一个集合
public boolean contains(Object o);  //查找集合中的元素
public boolean isEmpty();  //判断一个集合是否为空
public boolean remove(Object 0);//删除一个集合中的元素
public int size();//返回集合的长度

List接口中又拓展的方法

public E get(int index); //根据索引取得元素
public E set(int index,E element);//替换元素,index为要替换元素下标,element为要替换元素
public ListIterator<E> listIterator() List //List自己的迭代器

HashMap类:

在java 2集合框架中的Map接口有两个通用实现HashMapTreeMap。HashMap是采用哈希表实现,是Map接口的最好的全面实现。TreeMap不多阐述。

  • 键不可以重复,值可以重复
  • 底层使用哈希表实现
  • 线程不安全
  • 允许key为null,但只允许有一条记录为nullvalue也可以为null,允许多条记录为null
public class ArrayListTest {
public static void main(String[] args) {
	HashMap hashmap = new HashMap<String,Object>();
	hashmap.put("sa", "sas");
	System.out.println(hashmap.get("sa"));//sas
}
}

ArrayList类:

底层数据结构是数组(相当于动态数组),允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢线程不安全

  • ArrayList 实现了RandmoAccess接口,即提供了随机访问功能
  • 在ArrayList中,我们即可以通过元素的序号快速获取元素对象
  • ArrayList 实现了Cloneable接口,即覆盖了函数clone(),能被克隆
  • ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输
  • 如果通过不含参数的构造函数ArrayList()来创建ArrayList,则elementData的容量默认是10
public static void main(String[] args) {
   ArrayList<String> list = new ArrayList<String>();
   list.add(0, "你好");
   System.out.println(list.get(0));
}

综述

总之,HashMap就是键值对
HashMap hashmap = new HashMap<String,Object>();
ArrayList就是按索引存取
ArrayList<String> list = new ArrayList<String>();

在这里就没有叙述什么ArrayList的elementData对象等问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值