`

java基本概念--集合选择

阅读更多
Arrays和Collections类的设计使命就是:

提供一组静态的对数组和集合类进行操作的方法,这样带来了很多好处和简便。

如果把一个外部类的内部类申明为static,只是可以不用new出一个外部类对象再去new内部类对象了,但是绝对不是说可以不用new内部类对象就已经有内部类对象了,因为静态的只是内部类的所有成员和方法,并不是它的对象。

如果只是随机访问,就用ArrayList,它可以按索引快速访问。如果频繁删除,添加,就用LinkedList,它是双向链表。

HashSet存储元素的时候,将会调用每个元素从Object继承或者覆盖的方法hashCode()来得到一个数值,用这个数值作为区分不同元素的依据,和作为散列函数的自变量来计算存储地址。

如果一个类没有重写Object的hashCode(),那HashSet将得到这个类的对象在内存中的地址,如果你希望以另一种规则来存储,那就在你的类中覆盖public int hashCode()方法,以获得一个你期望的散列码给HashSet。对于每一个对象,你可以调用hashCode()方法来获得它的散列码。

当然只覆盖hashCode()是不够的,你还必须覆盖另一个方法:equals().原因在于HashSet将用hashCode()来获得散列码,但它判断两个元素是否相同的依据还是Object的equals()方法,虽然得到相同的散列码,这只能代表这两个有着相同散列码的元素 将会被存储在同一个地方(会自动调整的),但是HashSet并不会因为散列码相同而认为元素相同,它需要察看equals()的结论。

TreeSet中存储的元素都必须实现Comparable接口。

HashSet优于TreeSet,如果不排序,就用HashSet.

对于HashMap和TreeMap的选择一样。

如果在多线程环境下,Collections提供了几个方法,可以用容器作为参数得到线程安全的同步容器。
分享到:
评论

相关推荐

    Java-Interview-超全集合github上评分最高的jiva面试题

    - **数据类型与变量**:了解Java的八种基本数据类型以及引用类型,掌握变量的声明、初始化和作用域。 - **流程控制**:包括条件语句(if, switch)和循环(for, while, do-while)的使用。 - **面向对象**:深入...

    javaCV1.4-ffmpeg包集合

    本文将深入探讨JavaCV和FFmpeg的基本概念,它们的功能,以及如何在实际项目中应用这些包。 JavaCV(Java Computer Vision)是一个开源框架,它为Java程序员提供了访问各种计算机视觉库的接口,如OpenCV、FFmpeg、...

    面试真题包含spring-java-集合-框架-并发-spring-运维-数据库等多领域45卷合集.rar

    这份名为"面试真题包含spring-java-集合-框架-并发-spring-运维-数据库等多领域45卷合集.rar"的压缩包是为准备Java相关面试的求职者精心整理的资源库。它包含了45套涵盖多个领域的面试题,旨在帮助求职者全面复习和...

    java-集合-知识点汇总

    Java集合的知识点汇总将会涵盖Java集合的基本概念、类型、实现、操作和注意事项等方面。 Java集合的基本概念 Java集合是Java语言中的一种数据结构,用于存储和操作数据。Java集合可以存储多个元素,每个元素可以是...

    java基础教程----精华版

    - **变量**:在Java中,变量是存储数据的容器,分为基本类型(如int, double, boolean等)和引用类型(如类、接口、数组)。 - **数据类型**:Java有两大类数据类型,即原始类型(primitives)和引用类型...

    中信java培训资料------第一部分

    这份资料旨在帮助初学者建立起坚实的Java编程基础,并逐步熟悉其核心概念和技术。 在【听课笔记(6月22日).doc】中,可能详细记录了当天课程的主要内容,包括Java的起源、发展历程、基本语法结构,如变量声明、数据...

    2024年java面试题-java集合相关面试题

    以上总结了Java集合的基础概念、特点、分类及其具体实现方式,这对于理解Java集合框架的基本原理及其在实际开发中的应用至关重要。希望这些知识点能帮助你在面试中更好地应对关于Java集合的问题。

    2JAVA编程高级-集合类.pdf

    在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力。Java集合框架由一系列接口和实现这些接口的类组成,位于`java.util`包...

    Java-Interview-Question.pdf

    ### Java基本概念 - **对象(Object)**: 是Java中一切类实例的抽象,包含了数据和对数据的操作方法。 - **类的构成**: 由方法(methods)和变量(variables)构成,变量分为静态变量(static variable)和实例变量(instance...

    java课件--耿秋义

    2. **Java第03章 - 面向对象基础**:讲解了面向对象编程的基本概念,包括类的定义、对象的创建、封装、继承和多态等。这是Java的核心特性,学习者需要理解如何通过类来组织代码,以及如何利用这些特性实现更高效的...

    详解Java实现的k-means聚类算法

    在学习k-means聚类算法之前,需要了解一些基本概念: 1. 聚类分析:聚类分析是指对数据进行分类,将相似的数据点聚类到一起,形成不同的簇。 2. 无监督学习:无监督学习是指算法在不知道数据的类别标签的情况下,...

    CoreJava串讲---超好!

    在Java编程领域,CoreJava是学习的基础,它涵盖了Java语言的核心概念和技术,包括语法、数据类型、控制结构、类与对象、集合框架等重要主题。这次的串讲内容将深入探讨这些基础知识,帮助开发者构建扎实的Java根基。...

    java-tutorial-2008-03-14

    理解这些基本概念是成为Java程序员的基石。 2. **类与对象**:Java的核心在于面向对象编程(OOP),其中类是对象的蓝图。这个教程将解释如何定义类,创建对象,并理解封装、继承和多态等面向对象特性。 3. **异常...

    java面试java-interview-guide-master.zip

    - 类与对象:理解面向对象编程的基本概念,包括封装、继承、多态。 - 构造器与方法:掌握构造器的作用,以及方法的定义、重载和重写。 2. **核心特性**: - 异常处理:理解Checked和Unchecked异常的区别,如何...

    java教程基本-java基础知识一

    Java基本数据类型 Java支持多种基本数据类型,包括整型、浮点型、字符型、布尔型等。每种数据类型都有固定的字节数和取值范围,确保了程序的可移植性和健壮性。 #### 5. Java变量 在Java中,变量是用来存储数据值...

    精通java集合框架--List,Set..

    本文将深入探讨Java集合框架的核心概念,包括`List`、`Set`、`Map`以及它们之间的区别和联系。 #### Java集合框架简介 Java集合框架是Java平台的一部分,它由一系列接口组成,这些接口描述了不同类型的容器,比如...

    java-SE-demo Java学习资料 自习资料练习

    学习如何根据需求选择合适的集合类型,以及如何使用迭代器、泛型等高级特性,能提升代码的效率和可维护性。 线程编程是Java的一大特色。Java提供了Thread类和Runnable接口来实现并发执行。理解线程同步、互斥、死锁...

    Javanotes7-web-site

    2. **类与对象**:深入理解面向对象编程的基本概念,如封装、继承和多态,以及如何定义和实例化类,创建对象并调用其方法。 3. **异常处理**:学习Java中的异常处理机制,如何使用try-catch-finally语句捕获和处理...

    《java开发宝典-陈丹丹、李银龙》源代码+课件PPT

    《Java开发宝典》是陈丹丹和李银龙两位专家合著的一本关于Java编程的权威指南,这本书深入浅出地介绍了Java编程语言的核心概念和技术。提供的源代码和课件PPT为读者提供了丰富的实践资源,帮助学习者更好地理解和...

Global site tag (gtag.js) - Google Analytics