V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
szhgoldeneye
V2EX  ›  问与答

请教一个代码设计的问题

  •  
  •   szhgoldeneye · Jul 18, 2019 · 2284 views
    This topic created in 2475 days ago, the information mentioned may be changed or developed.

    现在我有一堆对象的集合,该集合要做到

    • 随时可增删
    • 随时全遍历搜索

    目前只是简单得放在内存里,用 ArrayList 来做,搜索因为有速度要求,用了 Future 做并发查询

    想问下这种情形下有没有什么好的实现方式

    7 replies    2019-07-18 12:02:35 +08:00
    momocraft
        1
    momocraft  
       Jul 18, 2019
    随便线程安全的 iterable 容器都可以?反正只是全遍历搜索
    carlclone
        2
    carlclone  
       Jul 18, 2019
    为何需要全遍历搜索?
    Macolor21
        3
    Macolor21  
       Jul 18, 2019 via iPhone
    增删用 ArrayList ? ConcurrentHashMap 应该可以满足
    szhgoldeneye
        4
    szhgoldeneye  
    OP
       Jul 18, 2019
    @carlclone 目前没法对这些集合数据做聚类这种 现在的场景下只能全遍历
    szhgoldeneye
        5
    szhgoldeneye  
    OP
       Jul 18, 2019
    @Macolor21 好的 我了解一下
    Mirt
        6
    Mirt  
       Jul 18, 2019 via iPhone
    如果可以对对象排序的话 查询效率会高一些
    如果频繁增减的话 使用链表结构不要用数组结构好一些
    如果有多线程同时操作用线程安全的集合
    micean
        7
    micean  
       Jul 18, 2019
    场景描述不是很清晰,又要并发安全又要遍历,用 ConcurrentSkipListSet 怎么样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5845 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 156ms · UTC 01:52 · PVG 09:52 · LAX 18:52 · JFK 21:52
    ♥ Do have faith in what you're doing.