首页 > 其他分享 >Collections

Collections

时间:2023-10-30 15:55:47浏览次数:37  
标签:List list Collection class Collections mutex public

 

ArrayList相关

Collections.synchronizedList(new ArrayList<>())

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{
        
    }

  

public class Collections {

        static class SynchronizedCollection<E> implements Collection<E>, Serializable {
            final Collection<E> c;  // Backing Collection
            final Object mutex;     // Object on which to synchronize

            SynchronizedCollection(Collection<E> c) {
                this.c = Objects.requireNonNull(c);
                mutex = this;
            }

            public boolean add(E e) {
                synchronized (mutex) {return c.add(e);}
            }
            public boolean remove(Object o) {
                synchronized (mutex) {return c.remove(o);}
            }
        }

        static class SynchronizedList<E> extends SynchronizedCollection<E> implements List<E> {
            final List<E> list;

            SynchronizedList(List<E> list) {
                super(list);
                this.list = list;
            }
        }
        
        static class SynchronizedRandomAccessList<E> extends SynchronizedList<E> implements RandomAccess {
            SynchronizedRandomAccessList(List<E> list) {
                super(list);
            }
        }
    }

  

标签:List,list,Collection,class,Collections,mutex,public
From: https://www.cnblogs.com/anpeiyong/p/17798057.html

相关文章

  • Arrays.asList() 和 Collections.singletonList()
    Collections.singletonList()  创建不可变List,只包含单个元素,List容量始终为1;  Arrays.asList()  快速创建List,但创建的列表是不可变的,不可调用add方法;......
  • org.apache.commons.collections4.CollectionUtils
      {//集合判空List<Integer>list=newArrayList<>();list.add(2);list.add(1);list.add(3);if(CollectionUtils.isEmpty(list)){System.out.println("集合为......
  • Java反序列化:CommonsCollections7调试分析
    CommonsCollections7基础知识1.HashTable散列表,也称为哈希表,以key-value形式进行访问的数据结构HashTable具有线程安全:多个线程同时访问它时,不会导致数据不一致。相对于HashMap、ConcurrentHashMap等线程安全性散列表,HashTable比较古老诸如散列表,常见的类方法:putget......
  • 异常:java.lang.ClassNotFoundException: org.apache.commons.collections.map.ListOr
    使用JSON,在SERVLET或者STRUTS的ACTION中取得数据时如果会出现异常:Java.lang.NoClassDefFoundError:net/sf/ezmorph/Morpher原因是少了JAR包,造成类找不到还必须有其它几个依赖包:commons-logging-1.0.4.jarcommons-lang-2.3.jarcommons-collections-3.2.jarcommons-beanutils-1......
  • Java反序列化:CommonsCollections3调试分析
    基础知识1.Java反射1.1getConstructorgetConstructor是Java反射API中的一个方法,用于获取类的公共构造方法的引用。构造方法是一种特殊的方法,用于创建类的实例(对象),并且通常在对象创建时进行初始化。getConstructor的函数原型:publicConstructor<?>getConstructor(Class......
  • Java反序列化:CommonsCollections5调试分析
    基础知识1.BadAttributeValueExpException相关源码可以看到这个异常类的支持序列化和反序列化,同时在反序列化readObject函数中会涉及到toString函数publicclassBadAttributeValueExpExceptionextendsException{/*Serialversion*/privatestaticfinal......
  • [编程基础] Python内置模块collections使用笔记
    collections是Python标准库中的一个内置模块,它提供了一些额外的数据结构类型,用于增强Python基础类型如列表(list)、元组(tuple)和字典(dict)等。以下是对collections模块中主要数据结构类的概述:namedtuple:命名元组,创建一个带有名称的tuple,并且可以通过名称访问元素。deque:双端队列,可......
  • Java反序列化:CommonsCollections6调试分析
    JDK8u71大版本中AnnotationInvocationHandler.readObject被修改了,为了使得CC1能够利用,又造了一条CC6CC6解决的是CC1在高版本jdk上无法利用的问题这里搬一下web佬Boogipop的整理图:环境搭建JDK测试版本:JDK11基础知识1.CC1和CC6的恶意代码执行触发链再来捋顺一下这条恶......
  • 集合-Collections及常用方法
    一.概述Collections类是Java提供的一个操作Set、List、Map等集合的工具类Collections类提供了许多操作集合的静态方法,借助这些静态方法可以实现对集合元素的排序、查找替换和线程安全化等操作Collections类中的方法都是静态的Collections类中没有构造函数,不能进行实例化二.常......
  • Collections.unmodifiableList方法
    在阅读mybatis拦截器链源代码时,发现其是这么写的:////Sourcecoderecreatedfroma.classfilebyIntelliJIDEA//(poweredbyFernFlowerdecompiler)//packageorg.apache.ibatis.plugin;importjava.util.ArrayList;importjava.util.Collections;importjava.util......