精华内容
下载资源
问答
  • 常见的集合

    2017-12-21 22:52:17
    集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就可以...常见的集合类在集合框架中我们会用到许多常见的集合类。 List集合Vector:内部是数组数据结构,是线程同步的。增删和查询都很

    集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就可以使用集合容器进行存储。

    集合的特点

    1. 用于存储对象的容器
    2. 集合的长度是可变的
    3. 集合中不可以存储基本数据类型

    集合框架

    集合容器因为内部的数据结构不同,有多种具体容器。不断向上抽取,就形成了集合框架。

    常见的集合类

    在集合框架中我们会用到许多常见的集合类。

    • List集合

      Vector:内部是数组数据结构,是线程同步的。增删和查询都很慢。其实现方式不断的new新数组,并将原数组复制到心数组中。(被替代)。

      ArrayList:也是数组结构,也是长度可变的,是线程不同步的。替代了Vector。查询的速度很快

      LinkedList:内部是链表数据结构,是线程不同步的。增删元素很快。

    • Set集合,不允许重复元素。

      HashSet:哈希表结构哈希表,查询速度快

      用于存储元素和哈希值对应关系的元素的容器

      特点:1,不允许存储重复元素,因为会发生查找的不确定性
      2,不保证存入和取出的顺序一致。

      TreeSet:二叉树数据结构。可以对元素进行排序。不同步的。

      排序方式: 元素要具备比较功能,所以元素需要实现Comparable接口 覆盖ConparableTo方法

    其他的还有

    LinkedHashSet:链表+哈希表 可以保证有序,因为有链表。
    
    展开全文
  • Java常见的集合List、Set、Map List Set Map

    Java常见的集合List、Set、Map

    List

    Set

     

    Map

     

     

    各个集合的使用场景

     

    展开全文
  • 几种常见的集合

    2016-05-06 19:22:57
    几种常见的集合:NSArray/NSMutableArray NSSet/NSMutableSet NSDictionary/NSMutableDictionary 1.不可变有序数组:void Array() { // 创建 // 快速创建的方法只适于创建不可变数组 NSArray *s = @[@"jack", ...

    NSArray/NSMutableArray
    NSSet/NSMutableSet
    NSDictionary/NSMutableDictionary
    1.不可变有序数组:

    void Array()
    {
        // 创建
        // 快速创建的方法只适于创建不可变数组
        NSArray *s = @[@"jack", @"rose", @"jerry"];
    
        //数组对象的访问
        NSLog(@"%@", s[0]);
    
        // 快速枚举
        for (NSString *obj in s){
            NSLog(@"%@", obj);
        }
    
        // 枚举遍历,适可而止
        [s enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if (idx == 1) {
                *stop = YES;
            }
            NSLog(@"%@", obj);
        }];
    
    <pre name="code" class="objc">    // 数组中对象的个数
        NSInteger count = s.count;
        NSLog(@"count= %ld", count);
    }

    2.不可变有序数组:创建、添加、删除、遍历等

    void MutableArray()
    {
        // 创建
        NSMutableArray *s = [NSMutableArray arrayWithObjects:@"jack", @"jerry", @"jane", nil];
    
        // 添加对象
        [s addObject:@"1"];
    
        NSArray *array = @[@"2", @"3", @"4"];
        [s addObjectsFromArray:array];
    
        // 删除对象
        [s removeObject:@"jack"];
    
        // 删除所有对象
        [s removeAllObjects];
    
        // 快速枚举遍历
        for (NSString *obj in s) {
            NSLog(@"%@", obj);
        }
    
        // 枚举遍历:根据条件停止遍历
        [s enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if (idx == 4) {
                *stop = YES;
            }
    
            NSLog(@"%@", obj);
        }];
    
        // 输出数组中对象个数
        NSLog(@"%ld", s.count);
    }

    3.无序不可变集合:

    void set()
    {
        // 创建
        NSSet *s = [NSSet setWithObjects:@"1", @"2", @"3", nil];
    
        // 随机访问
        NSString *str = [s anyObject];
        NSLog(@"str= %@", str);
    
        // 快速枚举,打印出来是无序的
        for (NSString *obj in s) {
            NSLog(@"NSSet= %@", obj);
        }
        // 集合对象个数
        NSLog(@"count= %ld", s.count);
    }

    4.无序可变集合:

    void mutableSet()
    {
        // 创建
        NSMutableSet *s = [NSMutableSet setWithObjects:@"1", @"2", @"3", nil];
    
        // 添加单个对象
        [s addObject:@"4"];
    
        // 添加多个对象
        NSArray *array = @[@"5", @"6"];
        [s addObjectsFromArray:array];
    
        // 删除对象
        [s removeObject:@"1"];
        [s removeAllObjects];
    
        // 枚举遍历
        for (NSString *obj in s) {
            NSLog(@"NSMutableSet= %@", obj);
        }
    }

    5.无序不可变字典:

    void dictionary()
    {
        // 创建
        // 键 : 值
        NSDictionary *d = @{@"61" : @"林昆", @"63" :  @"小强", @"57" :  @"小顺",  @"59" : @"小波"};
    
        // 访问
        id obj = d[@"61"];
        NSLog(@"61 -> %@", obj);
    
        // 输出字典的键值对数
        NSLog(@"键值对数:%ld", d.count);
    
    }
    

    6.无序可变字典:

    void mutableDictionary()
    {
        // 创建
        NSMutableDictionary *s = [NSMutableDictionary dictionary];
    
        // 添加键值对
        [s setObject:@"林昆" forKey:@"61"];
        [s setObject:@"小强" forKey:@"63"];
        [s setObject:@"小顺" forKey:@"57"];
        [s setObject:@"小波" forKey:@"59"];
    
        // 删除键值对
        [s removeObjectForKey:@"61"];
    
    // 访问值对象
        id obj = s[@"61"];
        NSLog(@"61 -> %@", obj);
    
        // 输出键值对数
        NSLog(@"键值对:%ld", s.count);
    
    }

    7.数组对象元素是字典对象:

    void arrayAndDictionary()
    {
        // 允许有相同的value,当不允许有相同的key
        NSDictionary *d = @{@"林昆" :@"123", @"小强" :@"456", @"小顺" :@"789", @"小波" :@"123"};
    
        // 创建不可变数组元素
        // 元素对象是字典集
        NSArray *s = @[@{@"Name" :@"Linkun", @"QQ" :@"1245205002", @"Favourite" :@[@"Weekness Of People",@"The World Of Commond"]},
                       @{@"qq1" :@"123"},
                       @{@"qq2" :@"234"}];
    
        // 取值
        // 键值命名不能有空格
        NSString *s1 = s[0][@"QQ"];
        NSLog(@"取出QQ号码:%@", s1);
    
        NSString *s2 = s[0][@"Favourite"][0];
        NSLog(@"取出喜欢的书:%@", s2);
    
        // 快速枚举遍历
        for (NSString *obj in s) {
            NSLog(@"%@", obj);
        }
     }
    展开全文
  • Java里常见的集合有什么特点 java 中的集合分为,单列集合Collection,双列集合Map。 Collection 分为:List 、 Set List有序可重复 分为ArrayList、Vector、LinkedList: ArrayList:底层实现是数组,查询快,增删慢...

    Java里常见的集合有什么特点

    java 中的集合分为,单列集合Collection,双列集合Map。
    Collection 分为:List 、 Set
    List有序可重复 分为ArrayList、Vector、LinkedList:
    ArrayList:底层实现是数组,查询快,增删慢,线程不安全,效率高,每次扩容为当前容量的1.5倍+1;
    Vector:底层实现是数组,查询快,增删慢,线程安全,效率低,
    、=扩容机制为翻倍;
    LinkedList:底层实现是双向链表,增删快,查询慢,线程不安全,效率高;

    Set
    HashSet:无序不可重复,底层使用Hash表实现,存取速度快。
    LinkedHashSet:采用hash表存储,使用双向链表记录插入顺序

    Map分为:HashMap、HashTable
    HashMap:key重复则覆盖原有的value,底层使用数组+链表实现,jdk1.8以后加入了红黑树,线程不安全,key和value都允许为null
    HashTable:key重复则覆盖原有的value,底层使用数组+链表实现,jdk1.8以后加入了红黑树,线程安全,key和value都不允许为null

    展开全文
  • 简述Java中常见的集合框架   在看集合和框架的之前,个人认为应该先考虑一下以下几个问题: 一、 Java中为什么会出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对...
  • 常见的集合接口

    2020-04-06 19:09:57
    Collection接口:单列集合,两个子接口 ①List接口:有序可重复 ​ LinkedList:基于链表实现,每个元素储存本身内存地址还储存下一个元素地址。(增删快,查找慢) ​ ArrayList:基于数组实现,每次增删都要...
  • 说起HashMap首先说一下数组和链表的优缺点: 数组:存储的内存地址是连续的、大小固定,查询速度快、时间复杂度为O(1),缺点是插入和删除速度慢,时间复杂度为O(n)。...Java中常见的集合: 1、线
  • Java中常见的集合容器类关系图

    千次阅读 2015-06-19 23:36:24
    Java中常见的集合容器类关系图
  • 集合好比容器,将一系列相似组合一起,是一个特殊类,和数组一样,可以通过索引访问集合成员,也可以通过”键”来访问,与传统数组不同是,集合的大小可以动态调整,可以在运行时添加或删除...
  • kotlin 常见的集合操作

    2019-09-16 21:16:51
    是一个有序集合,可通过索引(反映元素位置整数)访问元素 val bob = Person("Bob", 31) val people = listOf<Person>(Person("Adam", 20), bob, bob) val people2 = listOf<Person>(Person("Ad...
  • 常见的集合面试题

    2020-04-16 17:15:37
    2、第一次添加元素,扩展容量为10,之后扩充算法:原来数组大小+原来数组一半 3、当插入、删除位置比较靠前时,与链表比较,不适合进行删除或插入操作 4、为了防止数组动态扩充次数过多,建议创建ArrayList时,...
  • Java常见的集合类之间的关系与特点

    千次阅读 2020-06-15 03:18:34
    做为一名程序开发人员,善用数据结构与合适的算法是写出一份具有高效性能的代码的基础,Java中最最基础的数据结构主要有三种,分别是数组、链表还有图,其中“图”这种数据用的比较少,像我们开发常用的集合同时都是...
  • 1.集合Java中的集合分为两类,一类是存value(collection接口),一类是存放key-value(Map);存放value的主要分为三类,Set、List还有queue;其中Set是无序,不可以重复的,根据equals和hashcode来判断,也就是...
  • list是python一个列表集合,有顺序,可以包含不同类型元素,用L=['a',1,123]表示,与数组类似,下标都是从0开始,是可变长度集合;append方法可在list末尾添加元素;insert(x,y)方法可在任意位置添加一个元素;...
  • Hibernate常见的集合映射主要有Set,List,Array,Map,Bag等,它们的特点如下: 1) Set集合是Hibernate中基础的集合类型,元素数据一般使用外键同主表关联,Set集合非常适用于集合元素不能重复的情况。 2) Set集合...
  • 一、java中各种集合的关系图 图1 图1 图2 图2 二、简单总结 Collection 是对象集合, Collection 有两个子接口 List 和 Set,List 可以通过下标 (1,2..) 来取得值,值可以重复,而 Set 只能通过...
  • Hibernate常见的集合映射主要有Set,List,Array,Map,Bag等,它们的特点如下: 1) Set集合是Hibernate中基础的集合类型,元素数据一般使用外键同主表关联,Set集合非常适用于集合元素不能重复的情况。 2) Set集合是...
  • Map(图)接口和Collection(收集)接口是所有集合框架父接口,Collection接口子接口包括:Set(一组)接口和List(目录)接口 Map接口实现类主要有:HashMap、TreeMap、Hashtable、LinkedHashMap、...
  • Hibernate常见的集合映射主要有Set,List,Array,Map,Bag等,它们的特点如下: 1) Set集合是Hibernate中基础的集合类型,元素数据一般使用外键同主表关联,Set集合非常适用于集合元素不能重复的情况。 2) Set集合是...
  • 一、集合 1、list集合 list集合主要包括: ArrayList, CopyOnWriteArrayList, ...类说明:线程安全,适用于写少读多缓存场景,添加元素时,将整个集合复制一份,将对象改变后,将原先集合的引用指向修改...
  • JS中几种常见的集合

    万次阅读 2017-04-16 12:04:38
    Array 中存储元素是有序可以重复,长度是可以动态改变,存储元素可以是任意数据类型。 1.1.1 构造函数方式创建数组方式 var arr = new Array("1","2","3");1.1.2 字面量方式创建构造函数 var arr =...
  • 面试中常见的集合类问题

    千次阅读 2017-10-02 14:02:27
    注意ConcurrentHashMap是并发包下,其实现也是并发包下ConcurrentMap接口,该接口继承了Map接口。 Hashmap基于链表数组(红黑树),arraylist就是数组,linkedList基于双向链表。 注意set从没规范是否有顺序,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,407
精华内容 8,162
关键字:

常见的集合