java基础之集合

集合

1、特点:存储对象(不同类型)、长度可变
2、集合框架Collection(I)
2.1、List(I):有序、元素可重复、有索引
有索引就可以随意的插入、删除修改元素
2.1.1、ArrayList:底层数组结构,查询快,增删满,不同步
2.1.2、LinkedList:底层链表结构,增删修改快,查询慢,不同步
2.13、Vector:底层是数组结构,线程同步,被arraylist取代
注意:它对于判断是否存在相同元素,以及三处等操作,都是依据元素的hashCode和quals方法
而arraylist是依据equals方法

2.2、Set:无序的,无索引,元素不可重复
2.2.1、HashSet:底层是哈希表、线程不同步、无序、高效
保证唯一性:通过元素的hashcode和equals方法,若hashCode值相同,则会判断equals,若hashcode不同则不掉用equals
2.2.2、TreeSet:底层是二叉树,可对元素进行排序,默认是自然顺序
保证唯一性:comparable接口和compareTo方法
排序方法:
1、自然排序:添加的对象实现comparable接口,覆盖compareto方法
2、比较器:由于对象自身不具有比较性。需要实现comparator接口 自定义compare方法

2.3、map集合
2.3.1、hashtable:底层数据结构是哈希表,不可存入null键和null值。同步
2.3.2、hashmap:底层数据结构哈希表,允许使用null键值,不同步,效率高
2.3.3、treemap:底层数据结构二叉树,不同步,可排序,set底层就是map集合

Collection:Java.util下的接口,是各种单列集合的父接口,比如Llist和set。而set和List底层还有map

collections:Java.utils下的工具类,实现堆积和的查找、排序、替换、线程安全化等

Arrays:用于操作数组对象的工具类

附图:
这里写图片描述

总结:
/**
* 4、 Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?
*
* @author nn
*解:
* Collections是java.utils下的类,是针对集合类的一个工具类,提供了一系列静态方法,实现堆集合的查找、
*排序、替换、线程安全化(将非同步的集合转换成同步的)等操作。
* Collection是java.utils下的接口,他是各种集合结构的父接口,继承于他的接口主要有Set和List,提供了
*关于集合的一些操作,例如:插入、删除、判断一个元素是否其成员、遍历等。
*
*List: 有序 元素可重复 有索引
* ArrayList 数组实现 查询快 增删慢 不同步 唯一性:equals
* LinkedList 链表实现 查询慢 增删快 不同步
* Vector 数组实现 线程同步 唯一性:hashcode equals
*
*Set:存入元素无序(除了LinkedHashSet),不可以存储重复元素 无索引。必须保证元素的唯一性。
* HashSet 底层哈希表实现(实际map实现) 唯一性:hashcode equals hashcode返回false 就不执行equals
* TreeSet 底层二叉树实现 唯一性:1、实现comparable接口重写compareto方法 2、实现comparator接口 重写compare方法
*
*Map集合:
* Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键 null值。
* HashMap: 底层是哈希数据表结构,是线程不同步的。可以存储null键和值。替代了Hashtable
* TreeMap: 底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。
*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值