`

java集合使用注意点

    博客分类:
  • java
阅读更多

1.Collections 比数组好,Arrays.asList(args);返回的 List 是不可修改的,所以如果尝试向其中添加新元素将抛出一个 UnsupportedOperationException。而且,由于 Arrays.asList() 使用 varargs 参数表示添加到 List 的元素,所以还可以使用它轻松地用以 new 新建的对象创建 List。
2.2. 迭代的效率较低
将一个集合(特别是由数组转化而成的集合)的内容转移到另一个集合,或者从一个较大对象集合中移除一个较小对象集合,这些事情并不鲜见。
您也许很想对集合进行迭代,然后添加元素或移除找到的元素,但是不要这样做。
在此情况下,迭代有很大的缺点:
每次添加或移除元素后重新调整集合将非常低效。
每次在获取锁、执行操作和释放锁的过程中,都存在潜在的并发困境。
当添加或移除元素时,存取集合的其他线程会引起竞争条件。
可以通过使用 addAll 或 removeAll,传入包含要对其添加或移除元素的集合作为参数,来避免所有这些问题。
Iterator 实际上有两个十分有用的功能。
第一,Iterator 支持从源集合中安全地删除对象,只需在 Iterator 上调用 remove() 即可。这样做的好处是可以避免 ConcurrentModifiedException,这个异常顾名思意:当打开 Iterator 迭代集合时,同时又在对集合进行修改。有些集合不允许在迭代时删除或添加元素,但是调用 Iterator 的 remove() 方法是个安全的做法。
第二,Iterator 支持派生的(并且可能是更强大的)兄弟成员。ListIterator,只存在于 List 中,支持在迭代期间向 List 中添加或删除元素,并且可以在 List 中双向滚动。
双向滚动特别有用,尤其是在无处不在的 “滑动结果集” 操作中,因为结果集中只能显示从数据库或其他集合中获取的众多结果中的 10 个。它还可以用于 “反向遍历” 集合或列表,而无需每次都从前向后遍历。插入 ListIterator 比使用向下计数整数参数 List.get() “反向” 遍历 List 容易得多。
3.用 for 循环遍历任何 Iterable
 // Iterate over the kids
        for (Person kid : ted)
        {
            System.out.println(kid.getFirstName());
        }

分享到:
评论

相关推荐

    java集合使用大全

    Java 集合使用大全 Java 集合是 Java 语言中一个基础的数据结构,用于存储和处理数据。Java 集合可以分为两大类:类集(Collection)和 Map。类集是存储对象的集合,可以存储重复的元素,而 Map 是存储键值对的集合...

    java 集合

    总的来说,Java集合框架是Java编程中不可或缺的一部分,理解和熟练掌握其原理与使用方法,对于提升代码质量、优化程序性能具有重要意义。在日常开发中,我们需要根据具体需求灵活运用各种集合类和接口,以实现高效的...

    java集合习题及答案

    ### Java集合基础习题解析及答案 #### 题目一:统计子字符串在字符串中的出现次数 **题目描述:** 编写一个Java程序,定义一个方法`getCount`,该方法接收两个参数:一个字符串`str`和一个子字符串`s`,返回`s`在`...

    java-集合-知识点汇总

    Java集合在使用时需要注意以下几点: * fail-fast与fail-safe:Java集合在遍历时可能会抛出ConcurrentModificationException异常,这是因为集合在遍历时可能会被修改。fail-fast机制将抛出异常,而fail-safe机制将...

    java集合类线程安全.doc

    本文将结合上述 Bloch 关于线程安全等级的定义,对 Java 集合框架中的集合类进行线程安全性分析,并指出各个集合类在现实的编程环境中需要注意的并发编程的陷阱;同时对集合框架中通用算法对线程安全性的影响进行...

    java集合API

    ### Java集合API详解 #### 一、引言 在Java编程中,集合API是一个至关重要的组成部分,对于希望深入了解Java语言并提升编程技能的开发者来说,掌握这一API的重要性不言而喻。本文旨在深入剖析Java集合API的核心...

    java集合.docx

    【Java集合框架概述】 Java集合框架是Java编程语言中用于存储和管理对象的重要工具,它提供了多种数据结构,如数组、列表、集合并和映射等。集合框架使得程序员能够高效地处理对象,同时提供了丰富的操作接口和实现...

    java集合类的效率测试

    本测试着重探讨了Java集合类中的Set接口实现类(如HashSet)以及List接口实现类(如ArrayList和LinkedList)在进行增、删、改、查操作时的性能差异。 首先,我们来看ArrayList。ArrayList是一个基于数组实现的列表...

    第16章:Java集合.zip_java 集合_java集合

    本章PDF课件详细讲解了这些概念,并可能包括实例代码演示、性能分析以及各种操作的注意事项,旨在帮助学习者深入理解并熟练运用Java集合框架。通过学习,开发者可以更高效地管理内存资源,优化程序性能,解决实际...

    java 集合框架的原理及其使用

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和管理对象的统一方式。这个框架包括了一系列接口、抽象类以及实现类,帮助程序员处理各种数据结构,如列表、集合、映射等。 首先,我们...

    java集合课程3.docx

    Java集合框架是Java编程语言中一...以上内容只是Java集合框架的一部分,实际上还有更多高级特性和使用技巧,如迭代器(Iterator)、并发集合(Concurrent Collections)、流(Stream)等,需要在实践中不断学习和掌握。

    java基本集合类,java基本集合类

    Java集合框架是Java编程语言中的一个重要组成部分,它提供了多种数据结构,如列表、队列、集、映射等,方便程序员存储和...理解这些基本集合类的特性和工作原理,可以帮助我们更有效地使用Java集合框架来解决实际问题。

    第13讲 JAVA集合类.ppt

    Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...

    数据结构和Java集合框架

    在使用Java集合框架时,我们需要注意线程安全问题。对于多线程环境,需要考虑是否使用同步容器,如Vector、Stack和Collections.synchronizedXXX方法转换的集合,或者使用并发容器,如ConcurrentHashMap和...

    java不同对象及集合的多次复制

    - **使用流(Stream)API**:Java 8引入的流API可以方便地实现集合到集合的复制,如`sourceList.stream().collect(Collectors.toList())`,但这仍然是浅拷贝。 - **使用`clone()`或`copy()`方法**:如果集合中的...

    java集合某个字段按照中文拼音排序.docx

    对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用Comparable接口 在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,...

    java基础之集合

    Java集合框架主要包括三种类型的集合:`Collection`、`Set` 和 `Map`。 #### 二、集合概述 ##### 2.1 Collection接口的方法 - **add(Object o)**:将指定的对象加入集合。 - **clear()**:清空集合中的所有对象。 ...

    大公司最喜欢问的Java集合类面试题

    ### Java集合类重要知识点 #### 一、概述 在Java编程中,集合类是一个非常重要的概念,主要用于存储和管理对象的集合。Java集合框架主要包括两大类:`Collection`和`Map`。本篇文章将着重介绍`Collection`部分,并...

    JAVA经典编程试题集合.doc

    根据提供的文档信息,我们可以总结出以下几个关键的Java编程知识点: ### 1. 斐波那契数列(Fibonacci Sequence) #### 知识点详解: 斐波那契数列是一个非常经典的数学概念,在计算机科学中也有广泛的应用。...

    java集合代码

    Java集合框架是Java编程...总之,Java集合框架中的ArrayList是一个强大且灵活的数据结构,但在使用过程中必须谨慎处理异常,确保代码的稳定性和健壮性。熟练掌握ArrayList的操作和异常处理是Java程序员必备的技能之一。

Global site tag (gtag.js) - Google Analytics