首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏兜兜毛毛

    Java集合---CopyOnWriteArrayList(5

    实现算法 该集合如其名字一样,是先创建一个新的数组,然后将旧的数组copy到新数组中,再切换数组引用。并且该数组是在每次添加时都会执行以上流程,所以不建议在多写入的场景使用。 该集合在多并发时使用ReentrantLock锁来处理并发问题,比Vector中synchronized的效率会高一些,但在并法过程中可能会出现脏读问题,如两个线程一个执行读取数组数量,一个在做写入操作 这里说明一下,之前的几个集合在删除操作时都是不会对object[]数组进行操作,但这个集合会重新生成-1的新数组。所以可以说该集合的数组长度与集合的实际数据占用长度是相同的。

    45710发布于 2019-10-23
  • 来自专栏技术杂货店

    java集合5】——— Iterator接口

    二、为什么需要iterator接口 首先,我们知道iterator接口是为了定义遍历集合的规范,也是一种抽象,把在不同集合的遍历方式抽象出来,这样遍历的时候,就不需要知道不同集合的内部结构。 SpitIterator主要是定义类将集合分割成多个集合,方便并行计算。 public static void spliterator(){ List<String> list = Arrays.asList("1", "2", "3","4","5" 就是不断把前面一部分分出来 结果如下: tryAdvance: 1 2 ------------------------------------------- forEachRemaining: 3 4 5 ---------- spliterator1: 8 9 10 ------------------------------------------ spliterator2: 1 2 3 4 5

    82710编辑于 2022-02-15
  • 来自专栏性能与架构

    Redis 5 有序集合新增命令

    Redis 5 已经发布了,对有序集合新增了4个命令: ZPOPMAX ZPOPMIN BZPOPMAX BZPOPMIN 下面看一下这几个命令的作用和用法。 ZPOPMAX 命令: ZPOPMAX key [count] 作用: 从指定集合中删除并返回 count 个 score 值最高的元素。如果没有指定 count,默认值为 1。 score redis> ZRANGE myzset 0 -1 WITHSCORES 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" # 返回2个score 值最高的元素 redis> ZPOPMAX myzset 2 1) "three" 2) "3" 3) "two" 4) "2" # 查看集合剩余元素 redis> ZRANGE myzset 0 -1 1) "one" 2) "1" 3) "two" 4) "2" # 取出一个元素,集合中还剩一个元素 redis> BZPOPMAX myzset2 0 1) "myzset2" 2) "two" 3

    1.5K20发布于 2018-12-05
  • 来自专栏Yunfeng's Simple Blog

    PyQt5 代码片段集合

    安装 目前PyQt主要是4和5版本,因为两者不兼容,因此官方建议使用PyQt5, 这里以Python3 为例进行说明。 pip3 install PyQt5 SIP 安装好后可以使用下面这个代码片段测试安装是否成功,如果可以正常运行说明安装已经成功: import sys from PyQt5 import QtCore , QtWidgets from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget from PyQt5.QtCore import PyQt5.QtMultimediaWidgets import QVideoWidget from PyQt5.QtWidgets import (QApplication, QFileDialog 中文教程, 上手非常好的教程 PyQt5 实例教程, 实例很全面

    88330发布于 2019-12-25
  • 来自专栏前端重点笔记

    Day5 集合的深浅copy

    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:   去重,把一个列表变成集合,就自动去重了。    1,集合的创建。 print(set1) del set1 # 删除集合 print(set1) 4,集合的其他操作:   4.1 交集。 (| 或者 union) set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7,8} print 5,frozenset不可变集合,让集合变成不可变类型。

    43750发布于 2019-09-18
  • 来自专栏拭心的安卓进阶之路

    Java 集合深入理解(5):AbstractCollection

    什么是 AbstractCollection AbstractCollection 是 Java 集合框架中 Collection 接口 的一个直接实现类, Collection 下的大多数子类都继承 实现的方法 1.addAll() 添加一个集合内的全部元素: public boolean addAll(Collection<? contains(it.next())) { return false; } } return true; } 5.isEmpty() 是否为空: it.remove(); return true; } } return false; } 7.removeAll() 删除指定集合中包含在本集合的元素 () 方法对某个集合进行处理后,再调用这个集合的 修改方法(add,remove,set…),都会报这个错; 因此 AbstractCollection.add(E) 抛出这个错误是准从标准; 那为什么会有这个标准呢

    1.2K90发布于 2018-01-05
  • 来自专栏项目文章

    Java集合学习5:Map-HashMap、Hashtable

    Map接口使用 map的遍历 注意keySet()方法是得到的key的set形式的集合,所以要以set来接着。 entrySet(),Entry是映射对,有key也有value。

    16910编辑于 2024-06-07
  • 来自专栏仁扬笔记

    Redis的设计与实现(5)-整数集合

    整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素, 并且这个集合的元素数量不多时, Redis 就会使用整数集合作为集合键的底层实现. 整数集合 (intset) 是 Redis 用于保存整数值的集合抽象数据结构, 它可以保存类型为 int16_t , int32_t 或者 int64_t 的整数值, 并且保证集合中不会出现重复元素. 升级 每当我们要将一个新元素添加到整数集合里面, 并且新元素的类型比整数集合现有所有元素的类型都要长时, 整数集合需要先进行升级 (upgrade) , 然后才能将新元素添加到整数集合里面. , 程序才会对数组进行升级. 5. O(1) intsetLen 返回整数集合包含的元素个数. O(1) intsetBlobLen 返回整数集合占用的内存字节数. O(1) 7. 总结 整数集合集合键的底层实现之一.

    50410编辑于 2023-06-26
  • 来自专栏golang算法架构leetcode技术php

    golang刷leetcode 经典(5)设计哈希集合

    不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能 add(value):向哈希集合中插入一个值。 contains(value) :返回哈希集合中是否存在这个值。 remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。 不要使用内建的哈希集合库。 解题思路: 1,本题考察对hashset 的理解 2,使用拉链法 3,设计简单的hash函数,取模 hashset 和hashmap 区别: HashSet: HashSet实现了Set接口,它不允许集合中出现重复元素 当我们提到HashSet时,第一件事就是在将对象存储在 HashSet之前,要确保重写hashCode()方法和equals()方法,这样才能比较对象的值是否相等,确保集合中没有 HashMap: HashMap

    39820编辑于 2022-08-02
  • 来自专栏花狗在Qt

    Java开发编程规范:5.集合处理

    【强制】使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一样的数组,大小就是 list.size()。 【强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException ,指定集合初始值大小。 正例:values()返回的是 V 值集合,是一个 list 集合对象;keySet()返回的是 K 值集合,是一个 Set 集合对象;entrySet()返回的是 K-V 值组合集合。 【参考】合理利用好集合的有序性(sort)和稳定性(order),避免集合的无序性(unsort)和不稳定性(unorder)带来的负面影响。 说明:有序性是指遍历的结果是按某种比较规则依次排列的。

    96341发布于 2020-10-28
  • 来自专栏CSDNToQQCode

    5、软件产品集成过程——所有表集合

    中规划软件集成表可以帮助团队在软件开发过程中进行任务分配、进度跟踪和交付管理。以下是一些实施中规划软件集成表的步骤:

    45340编辑于 2023-10-11
  • 来自专栏指点的专栏

    Java 集合框架(5)---- Map 相关类解析(中)

    先从 HashMap 开始: HashMap HashMap 应该是 Java 集合框架中我们在开发中最常用的容器类之一了,它提供了保存多个键值对的能力,并对其保存的键值对提供获取和操作的相关 API, value, e.getValue())) return true; } return false; } } 我们在 Java 集合框架 我们用一个具体的数值带进去走一遍流程,假设当前 cap 为 6: n = cap - 1 = 5 n 的二进制:000..00(29个0) 101,之后省略前导零 n |= n >>> 1 = (101 (entrySet = new EntrySet()) : es; } // 2、通过得到 HashMap 的所有键值对中 “键” 的集合,然后通过 get() 方法得到值来遍历元素 public Set ,但实际上这个集合(entrySet)遍历元素的顺序就是直接顺序遍历其 HashMap 对象的 table 数组,关于这点,可以参考以下源码: final class EntrySet extends

    81120发布于 2019-01-18
  • 来自专栏余生大大

    Datawhale组队学习 -- Task 5: 字典、集合和序列

    dic = {(1, 2, 3): "Tom", "Age": 12, 3: [3, 5, 7]} print(dic) print(dic[(1, 2, 3)]) 通过构造函数dict来创建字典 print(li, type(li)) # [0, 1, 2, 3] <class 'list'> print(tu, type(tu)) # (0, 1, 2, 3) <class 'tuple'> 5. 【例子】 a = frozenset(range(10)) # 生成一个新的不可变集合 print(a) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) x = range(100) print(sum(x)) 求列表 [2,3,4,5] 中每个元素的立方根。 x = [2,3,4,5] x = [i ** 3 for i in x] print(x) 将[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)]

    1K50编辑于 2022-11-02
  • 来自专栏Python

    6-5、Python 数据类型-字典、集合

    集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用set()而不是{},因为后者创建的是一个空字典集合数据类型的核心在于自动去重。 >>> s = set([1,2,3,4,5])>>> s{1, 2, 3, 4, 5}>>> e = set('hello world')>>> e{'h', ' ', 'e', 'o', 'r', >>> s = set([1,2,3,4,5])>>> s{1, 2, 3, 4, 5}>>> s.add(6) # 添加元素 >>> s{1, 2, 3, 4, 5, 6}>>> s.add(6)> >> s{1, 2, 3, 4, 5, 6}>>> 集合更新可以通过update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重>>> s{1, 2, 3, 4, 5, 6}>>> s.update 注意,集合的pop方法无法设置参数,删除指定的元素需要注意的是,集合不能取出某个元素,因为集合既不支持下标索引也不支持字典那样的通过键值对获取。

    40320编辑于 2023-11-10
  • 来自专栏技术杂货店

    Java 集合5)-- Collections源码刨到底式详解

    上面的不可变集合提供方法直接获取,如下图: [20200307164120.png] 2、提供同步的集合 看下面的图片,我们可以看到这个工具类其实提供了很多同步的集合类,但是都是基于Synchronize 看了一下其他的空集合,都是空的。我想了很久 我们写测试用例的时候可能需要一个空的集合,有可能用到,还有就是它是空集合,但是它不为null,如果遍历null就会抛空指针,这样的话还是用一个空集合好了。 [20200307175208.png] 5.提供singleton的集合或者迭代器 从下面的图片啊,我们可以看到这个类还提供了获取singleton的List,Set,Map,还有Iterator,Spliterator 5. 交换(swap) public static void swap(List<? ,集合类型检查,转换,截取,获取单个对象的集合或者空集合,排序,查找,旋转,混排等等,这些都是我们日常的操作,使用频率比较高,所以都给封装成工具类了。

    52220发布于 2020-11-19
  • 来自专栏Python基础、进阶与实战

    Python基础-5 常用的数据结构(集合、字典)

    集合和字典 上文说完了列表和元组,本文继续介绍另外两种常用的数据结构,集合和字典。 集合 set 集合是由不重复元素组成的无序容器。 Python中的集合和数学上的集合概念基本相同,也可以求交集、并集、差集等操作。 参考手册:“set 对象是由具有唯一性的 hashable 对象所组成的无序多项集。” 集合的创建 创建集合用花括号或 set函数。更常见的是用集合推导式。 注意,创建空集合只能用 set(),不能用 {},{} 创建的是空字典。 集合创建方法: • 使用花括号内以逗号分隔元素的方式: {'jack', 'sjoerd'} • 使用集合推导式: {c for c in 'abracadabra' if c not in 'abc' } • 使用类型构造器: set(), set('foobar'), set(['a', 'b', 'foo']) 集合的应用 集合具有不重复的性质,可以用来去重。

    98620编辑于 2022-12-06
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )

    通过解构一次性给多个元素赋值 八、Set 集合 九、可变 Set 集合 十、List 与 Set 之间相互转换 十一、数组类型 十二、Map 集合 十三、获取 Map 值 十四、Map 遍历 十五、可变 Map 集合 一、List 创建与元素获取 ---- Kotlin 中的集合分为两类 , 只读集合 和 可变集合 ; 调用 listOf 函数 , 可以 直接创建 List 集合 ; 通过 [] 下标可以 : Tom 二、安全获取集合元素 ---- 除了使用 [] 下标获取 List 集合元素外 , Kotlin 还提供了 安全获取集合元素的 方法 : getOrElse 和 getOrNull 函数 ---- 使用 listOf 函数 创建的 List 集合 是 只读列表集合 ; 使用 mutableListOf 函数 创建的 MutableList 集合 是 可变列表集合 ; 调用 MutableList #toList 函数 , 可以 将 可变列表集合 转为 只读列表集合 ; 调用 List#toMutableList 函数 , 可以 将 只读列表集合 转为 可变列表集合 ; 代码示例 : fun main

    7.6K20编辑于 2023-03-30
  • 来自专栏Java升级打怪进阶之路

    Java实现List集合去重的5种方式

    newList.add(str); } } System.out.println("去重后:" + newList); } 遍历后判断赋给另一个list集合去重 (保证顺序) /** * 遍历后判断赋给另一个list集合去重(保证顺序) */ @Test public void removeRepeat3() { System.out.println("去重后:" + newList); } 通过TreeSet去重(保证顺序) /** * 通过TreeSet去重(保证顺序) * TreeSet集合实际上是利用 */ @Test public void removeRepeat5() { List<String> userList = getUserList();

    85040编辑于 2022-11-28
  • 来自专栏一个会写诗的程序员的博客

    《Kotlin 极简教程 》第5集合类(1)

    《Kotlin 极简教程 》第5集合类 ---- 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持 5.3.3 遍历List元素 使用Iterator迭代器 我们以集合 val list = listOf(0,1, 2, 3, 4, 5, 6,7,8,9) 为例,使用Iterator迭代器遍历列表所有元素的操作 取两个集合交集: >>> val mlist1 = mutableListOf(1,2,3,4,5,6) >>> val mlist2 = mutableListOf(3,4,5,6,7,8,9) > >> mlist1.retainAll(mlist2) true >>> mlist1 [3, 4, 5, 6] contains(element: T): Boolean 判断集合中是否有指定元素,有就返回 ,{it>3}) [4, 5, 6, 7] >>> dest [4, 5, 6, 7] filter(predicate: (T) -> Boolean)过滤出满足条件的元素组成的子集合 函数定义:

    3.1K20发布于 2018-08-17
  • 来自专栏一个会写诗的程序员的博客

    《Kotlin 极简教程 》第5集合类(2)

    Key可以看成是Value 的索引,作为key的对象在集合中不可重复(uniq)。 如果我们从数据结构的本质上来看,其实List就是Key是Int类型下标的特殊的Map。 Kotlin没有自己重新去实现一套集合类,而是在Java的集合类基础上做了一些扩展。 我们知道在Java中,根据内部数据结构的不同,Map 接口通常有多种实现类。 这个值的集合可能包含重复值。 >>> map.values [1, 2, 3] size属性 访问val size: Int获取map键/值对的数目。 List、Set、Map,以及它们扩展的丰富的操作函数,这些函数使得我们使用这些集合类更加简单容易。 集合类持有的是对象,而怎样的放入正确的对象类型则是我们写代码过程中需要注意的。下一章节中我们将学习泛型。

    2.3K10发布于 2018-08-17
领券