集合

容器

容器在解决什么问题?

存储一堆的数据是容器解决的最基本的问题。针对不同的需求有不用的容器。主要在于删除,插入,查询,效率,长度,排序,去重,数据结构

  1. 数组。数组是Java内置的容器。效率很快,因为是最基本的。但是长度却被限制,其余的容器去很好的解决这个问题。
  2. list:list集合是对数组的一个扩充。对于排序,对于数组长度的限制,ArrayList对于一般情况足够使用,但是如果需要进行大量的插入和删除工作,那么还是需要用链表实现的LinkedList
  3. set:set集合是为了进行去重,HashSet一般情况足够对付,但是如果同时需要兼顾排序的话,则需要使用TreeSet,如果是需要插入和删除上,则使用LinkedHashSet。但是set都是不能快速的进行访问。
  4. map:map集合主要解决键值对数据结构的数据。一般使用HashMap足够使用,但是需要排序则使用TreeMap。

数组

基础

  1. 初始化
1.String[] strings = new String[n];
2.String[] strings = {"1","2"};
3.String[] strings = new String[]{"1","2"};
  1. 唯一访问的属性,length(),该属性只代表数组的长度,不代表里面具体元素的个数
  2. 访问,[]
  3. 排序:

    1. 对象实现Comparable接口,Arrays.sort()
    2. 定义Comparator的实现类

集合

分类

  1. colleciton

    1. list
    2. set
  2. map

hashMap

hashMap的使用就在于对于键的使用,使得我们可以快速的查询。但是如果我们都把键存储在数组中,使用数组进行查找总是很慢的。所以我们可以折中,使用键生成的hash码来存储值。但是hash码有可能相同,所以我们可以将相同的hash码的值存储在同一个容器中。所以这个hash码的设计变得很关键。因为如果设计固定不变,就变回我们刚才所说的情况。但是如果hash码设计成每次都是变化的,那么这个值将不好查询。

转换

array –> list
list,set –> Collection.toArray()
list –> set

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据