Java集合的使用(个人用)

1.数组:

数组长度开始的时候必须指定,一旦指定不能更改

保存的必须是同一类型的元素

使用数组增加删除元素比较麻烦

数组灵活性不足

2.集合:

可以动态保存任意多个对象

提供了一系列方便操作的方法

集合主要分为两组:单列集合(单个对象)、双列集合(键值对形式)

Collection接口有两个重要的子类List,Set,他们的实现子类都是单列集合

Map接口的实现子类是双列集合,存放k-v

collection有些是有序的List,无序的set

collection通过list和set子接口实现

iterator迭代器  next()作用下移,将下移的集合返回给上个元素

list中的元素有序存取顺序一致,可以重复

Array list可以存放null

是由数组来实现数据存储的

array list是线程不安全的,多线程的情况下不建议使用arraylist

linked list底层实现了双向链表和双端队列特点

可以添加任意元素

linkedlist和arraylist的比较

linked list底层是双向链表,增删效率高,通过链表进行追加,改查效率低

array list底层可变数组,增删效率低,改查效率高

set不能使用索引的方式来获取,存放数据是无序的

hashset实际上是hashmap只能存放一个nul

hal

hashmap 的底层是数组+链表+红黑树(链表到达一定量的时候,而且满足数组的大小在某一个范围的时候)

linkedhashset底层是linkedhashmap,底层维护了一个数组+双向链表

存取顺序是一致的

map用于保存具有映射关系的数据

存放是无序的,key不可以重复,value可以重复

hashmap没有实现线程同步,是线程不安全的

hashtable不能存放null,它是线程安全的

开发中如何选择集合实现类:

先判断存储类型(一组对象(单列)或者键值对(双列))

单列Collection

List允许重复,增删多LinkedList(底层双向链表),改查多Array List(底层Object的可变数组)

Set不能重复,无序Hash Set底层HashMap(维护哈希表-->数组+链表+红黑树)

有序TreeSet(使用匿名内部类进行排序)

存取顺序一致LinkedHashSet(数组+双向链表)

双列Map:

无序hashmap

排序treemap(使用匿名内部类进行排序)

存取顺序一致Linked Hash Map

读取properties

泛型:编译时检查数据类型

减少数据类型的转换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值