`

Collections.singletonList方法的使用

 
阅读更多

方法注释:

 

    /**
     * Returns an immutable list containing only the specified object.
     * The returned list is serializable.
     *
     * @param  <T> the class of the objects in the list
     * @param o the sole object to be stored in the returned list.
     * @return an immutable list containing only the specified object.
     * @since 1.3
     */

 这个方法主要用于只有一个元素的优化,减少内存分配,无需分配额外的内存。

 

 

普通写法:

 

    List<MyBean> beans= MyService.getInstance().queryBean(param);
    if (CollectionUtils.isEmpty(beans)) {
      beans= new ArrayList<>();
      MyBean bean= new MyBean(param);
      beans.add(bean);
    }

 

 

优化写法:

 

    List<MyBean> beans= MyService.getInstance().queryBean(param);
    if (CollectionUtils.isEmpty(beans)) {
      MyBean bean= new MyBean(param);
      beans= Collections.singletonList(bean);
    }

 

 

类似地还有:

public static <T> Set<T> singleton(T o);

public static <T> List<T> singletonList(T o);

public static <K,V> Map<K,V> singletonMap(K key, V value);
 
// 或者直接调用常量 EMPTY_LIST
public static final <T> List<T> emptyList();

//或者直接调用常量 EMPTY_MAP
public static final <K,V> Map<K,V> emptyMap();

//或者直接调用常量 EMPTY_SET
public static final <T> Set<T> emptySet()

 需要注意的是,以上6个方法返回的容器类均是immutable,即只读的,如果调用修改接口,将会抛出UnsupportedOperationException

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    commons-collections-3.2.1.jar

    然而,更现代的Java开发可能倾向于使用更新的Apache Commons Collections版本,或者转向Java 8及其引入的流(Stream)API,这些API提供了更为简洁和直观的集合操作方式。 总之,Apache Commons Collections 3.2.1为...

    javaclooections类.docx

    虽然在现代Java开发中,`Iterator`和增强型for循环更常用,但在处理遗留代码时仍需了解`Enumeration`的使用方法。 通过上述知识点的介绍,可以看出`Collections`框架在Java编程中的重要作用,它不仅简化了集合类的...

    go-collections:Go中某些数据结构的实现

    在Go语言中,数据结构是程序设计的基础,它们用于组织和管理数据,使得我们能够高效地存储和访问信息。...如果你在项目中遇到处理数据结构的需求,不妨查看并使用"go-collections",它会为你提供强大的工具支持。

    Android动态代理IP设置Demo.rar

    我们可以使用getByName()方法输入代理IP字符串,得到InetAddress对象。 3. **ProxySelector类**: Android系统默认使用系统级的ProxySelector,但我们可以通过重写这个类并设置为我们自定义的实现,以便在每次网络...

    车厢调度问题

    return Collections.singletonList(Collections.singletonList(1)); } else { List&lt;List&lt;Integer&gt;&gt; sequences = generateSequences(n - 1); List&lt;List&lt;Integer&gt;&gt; newSequences = new ArrayList(); for (List...

    javapoet-maven-plugin:JavaPoet Maven插件

    JavaPoet Maven插件 一个简单的maven插件,可让您使用生成项目的源。 开发JavaFile Generator...import static java.util.Collections.singletonList ; import static javax.lang.model.element.Modifier.FINAL ; impor

    微软翻译api的java实现

    Collections.singletonList(targetLanguage)).blockFirst(); // 输出翻译结果 System.out.println("Translated text: " + result.getTranslations().get(0).getText()); ``` 六、安全与最佳实践 1. **密钥管理**: ...

    Collections Framework中的算法(之一)――综述

    - **装饰模式的应用**:`Collections` 类还提供了创建不可变集合、同步集合以及单例集合的方法,如 `unmodifiableList(List&lt;T&gt; list)`、`synchronizedList(List&lt;T&gt; list)` 和 `singletonList(T o)`,这些方法都是...

    6种方法初始化JAVA中的list集合

    List&lt;String&gt; cat = Collections.singletonList("cat"); System.out.println(cat); // 创建空List List&lt;String&gt; emptyList = Collections.emptyList(); ``` 4. 匿名内部类 利用匿名内部类可以一次性初始化List,...

    Collections源码java-JCF-CodeAnalysis:Javacollectionsframework源码分析

    此外,Collections还包含了一些实用的工厂方法,如`Collections.singletonList()`, `Collections.emptyList()`和`Collections.emptySet()`,它们分别用于创建单元素、空的List、Set。这些方法返回的是不可变的集合,...

    jesque-robust-worker-pool:jesque工人池的实现

    杰西·罗伯特·工人·普尔 工人池的实现。 它监视联合工作人员的状态,如果检测到死亡的工作人员,则调整工作人员的数量。... new WorkerImpl (config, Collections . singletonList( " foo " ), new MapBasedJob

    java集合框架PPT

    14. **集合工厂方法**:`Collections.emptyList()`, `Collections.singletonList()`, `Collections.emptyMap()`等可以快速创建特定类型的集合实例。 15. **垃圾回收与内存管理**:了解集合对象的生命周期和如何避免...

    redis实现分布式锁,自旋式加锁,lua原子性解锁

    Object result = jedis.eval(script, Collections.singletonList(key), Collections.singletonList(lockValue)); if (result.equals("true")) { // 解锁成功 } else { // 解锁失败,可能因为锁已被其他客户端...

    JDK5一些新特性关于枚举泛型等

    泛型的使用还体现在`Collections`类的静态工厂方法,如`Collections.emptyList()`,返回一个空的`List`,以及`Collections.singletonList()`,返回包含单个元素的`List`,这些方法都使用了泛型来确保返回的列表类型...

    redis进程锁的设计思路

    return jedis.eval(script, Collections.singletonList(lockKey), Collections.singletonList(jedis.client().getId())); } public void unlock() { // 释放锁,这里可以使用lua脚本确保操作原子性 // ... } ...

    SpringBoot+Redis执行lua脚本的方法步骤

    Object result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), UUID); System.out.println("删除结果:" + result); } ``` 使用 Lua 脚本可以实现 Redis 的事务操作,具有原子性、...

    jdk1.5API中文chm版

    7. **类型安全的异构容器(Collections Factory Methods)**:如`Collections.emptyList()`, `Collections.singletonList()`, `Collections.singletonMap()`等,创建已知类型的安全集合实例。 8. **可插拔的类型...

    Redis分布式锁代码示例

    Collections.singletonList(lockKey), lockValue); return result &gt; 0; } catch (Exception e) { return false; } } /** * 释放锁 * @param lockKey 锁的key * @param lockValue 当前锁的值 * @return ...

    jedis-2.9.0.jar

    Long result = jedis.eval(script, Collections.singletonList("key"), Collections.singletonList("1")); ``` ### 12. **其他高级功能** Jedis还支持更多特性,如pipeline(批量处理命令)、Geo位置操作、Bitwise...

Global site tag (gtag.js) - Google Analytics