首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA面试50讲之5:Vector,ArrayList,LinkedList区别

当向HashSet集合存入一个元素时,HashSet会调用该对象      hashCode()方法来得到该对象hashCode值,然后根据该HashCode值决定该对象HashSet存储位置...EnumSet集合元素也是有序,      它们以枚举值Enum类内定义顺序来决定集合元素顺序 2) List List集合代表一个元素有序、可重复集合集合每个元素都有其对应顺序索引...进行排序进行区分) 2) Hashtable 是一个古老Map实现类 2.1) Properties Properties对象处理属性文件时特别方便...(windows平台上.ini文件),Properties类可以把Map对象属性文件关联起来,从而可以把Map对象key-value写入到属性文      件,也可以把属性文件"属性名-...EnumMap根据key自然顺序   (即枚举值枚举类定义顺序) 3.Vector,ArrayList,LinkedList特点和区别 3.1.Vector简介及特点 1、Vector是内部是以动态数组形式来存储数据

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Java 基础篇】Java 自然排序:使用 Comparable 接口详解

Java 编程,我们经常需要对对象进行排序。为了实现排序Java 提供了 java.lang.Comparable 接口,它允许我们定义对象之间自然顺序。...自然排序是一种默认对象排序方式,它是根据对象内在特征或属性排序。例如,对于整数,自然排序是按照数字大小进行排序;对于字符串,自然排序是按照字母字典顺序进行排序。...自然排序通常是最直观和常见排序方式,它使得对象集合以一种有序方式存储和检索。 Java ,自然排序是通过 Comparable 接口来实现。...字符串排序字符串进行字母顺序排序。 产品价格排序:将产品对象按照价格属性进行排序,以便价格升序或降序列出产品。...姓名字典排序姓名对象按照字典顺序进行排序,以便姓氏或名字查找。 自然排序局限性 虽然自然排序非常方便,但它也有一些局限性: 对象属性限制:自然排序仅适用于比较对象某个属性或特征。

62330

Java集合框架

) 数组声明类型,就决定了进行元素初始化类型 数组存储数据方面的弊端 数组初始化之后长度不可变,不便于扩展 数组中提供属性和方法较少,不便于进行增删改等操作,且效率低,同时无法直接获取存储元素个数...用户可以对列表每个元素插入位置进行精确地控制,同时可以根据元素整数索引(列表位置,和数组相似,从0开始,到元素个数-1)访问元素,并检索列表元素,由于这些特性,ListCollection... Java5 之前,Java 集合会丢失容器中所有对象数据类型,把所有对象都当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java 集合可以记住容器对象数据类型。...它是使用元素自然顺序元素进行排序,或者根据创建Set 时提供 Comparator 进行排序,具体取决于使用构造方法 PS: 自然顺序 -> 元素实现了java.lang.Comparable...(List):根据元素自然顺序指定 List 集合元素升序排序 sort(List,Comparator):根据指定 Comparator 产生顺序 List 集合元素进行排序 swap

1.3K10

再谈Java数据结构—分析底层实现与应用注意事项

instance属性创建实例时候初始化,static属性类加载,也就是第一次用到这个类时候初始化,对于后来实例创建,不再次进行初始化。...,但集合可以存储不同类型元素(但集合一般存储同一种类型,可以用泛型加以控制) 3 访问元素方式 数组根据索引来获取元素 集合通常会提供一个迭代器来方便访问元素 若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量...java集合是什么? Java集合类存放于 java.util 包,是一个用来存放对象容器。 长度限制之别:集合只能存放对象。...保持有序set使用(使用元素自然顺序元素进行排序,或者根据创建 set 时提供 Comparator 进行排序(红黑数维护次序) Map 是键值集合,key 不允许重复,value 可以    ...HashMap输出顺序是随机,TreeMap条目是按键值升序排列,LinkedHashMap是元素最后一次被访问时间从早到晚排序 ---- 简明图 Collection||Set泛型接口方法摘要

96250

Java集合详解【面试+工作】

在说集合前我们不得不说一下数组 数组作用: 存放一组相同数据类型(基本或对象)数据,从而实现对数据管理 优势:可以快速通过下标对数组元素进行访问,效率高 劣势:容量实现定义好了,不能随着需求变化而扩容...HashSet特征 不仅不能保证元素插入顺序,而且元素以后顺序也可能变化(这是由HashSetHashCode存储对象(元素)决定对象变化则可能导致HashCode变化) HashSet...HashSet元素存放顺序和我们添加进去时候顺序没有任何关系,而LinkedHashSet 则保持元素添加顺序。TreeSet则是我们Set元素进行排序存放。...Java语言中,通过负载因子(load factor)来决定何时散列表进行再散列。例如:如果负载因子0.75,当散列表已经有75%位置已经放满,那么将进行再散列。...LinkedHashMap 则保留了键值存入顺序。 TreeMap则是Map元素进行排序

1.9K60

Java集合框架综述,这篇让你吃透!

---- 三、Collection接口 Collection接口是处理对象集合根接口,其中定义了很多元素进行操作方法。...此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序根据链表中元素顺序可以分为:按插入顺序链表,和访问顺序(调用get方法)链表。...TreeMap存储时会进行排序,会根据key来key-value键值进行排序,其中排序方式也是分为两种,一种是自然排序,一种是定制排序,具体取决于使用构造方法。...定制排序定义TreeMap时,创建一个comparator对象,该对象所有的treeMap中所有的key值进行排序,采用定制排序时候不需要TreeMap中所有的key必须实现Comparable接口...Map 插入、删除和定位元素,HashMap 是最好选择。 TreeMap取出来排序键值。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。

84530

java集合

java集合概述 Java 集合可分为 Collection 和 Map 两种体系 Collection接口:单列数据,定义了存取一组对象方法集合 List:元素有序(指的是存储时,与存放顺序保持一致...,否则将会抛出 ClasssCastException 定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责TreeMap 所有 key 进行排序。...Collections 中提供了一系列静态方法集合元素进行排序、查询和修改等操作, 还提供了集合对象设置不可变、集合对象实现同步控制等方法 排序操作:(均为static方法)...reverse(List):反转 List 中元素顺序 shuffle(List): List 集合元素进行随机排序 sort(List):根据元素自然顺序指定 List 集合元素升序排序 sort...(List,Comparator):根据指定 Comparator 产生顺序 List 集合元素进行排序 swap(List,int, int):将指定 list 集合 i 处元素和 j 处元素进行交换

1.6K20

10.TreeSet、比较器

(02) Person类实现了Comparable接口,因此它能被排序。 b) main(),我们创建了PersonList数组(list)。... * TreeSet存储对象时候, 可以排序, 但是需要指定排序算法  *  * Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义类存储时候出现异常(没有顺序)... *   方法内定义比较算法, 根据大小关系, 返回正数负数或零  *   使用TreeSet存储对象时候, add()方法内部就会自动调用compareTo()方法进行比较, 根据比较结果使用二叉树形式进行存储...TreeSet是一个有序集合,TreeSet元素将按照升序排列(指排序顺序),缺省是按照自然排序进行排列,意味着TreeSet元素要实现Comparable接口。或者有一个自定义比较器。...* 需求:字符串进行长度排序 * 分析:字符串本身具备比较性,但是是自然顺序进行排序,所以需要对排序方式进行重新定义,所以需要让集合具备比较性 * 使用比较器Comparator,覆盖compare

964100

Java8编程思想精粹(十)-容器持有对象(下)

这是继承和多态思想典型应用:表现不同行为. Set 根据对象“值”确定归属性. 早期 Java 版本 HashSet 产生输出没有可辨别的顺序。...排序字典顺序(lexicographically)完成,因此大写和小写字母位于不同。...如果想字母顺序(alphabetically)进行排序,可以向 TreeSet 构造器传入 String.CASE_INSENSITIVE_ORDER 比较器....小结 Java 提供了许多保存对象方法: 数组将数字索引与对象相关联。它保存类型明确对象,因此查找对象时不必结果做类型转换。它可以是多维,可以保存基本类型数据。...使用 Java 泛型,可以指定集合中保存对象类型,因此不能将错误类型对象放入集合,并且在从集合获取元素时,不必进行类型转换。

74910

Java面试题:Java集合及其继承关系

5、List和Set区别 Set是最简单一种集合集合对象特定方式排序,并且没有重复对象。...HashSet: HashSet类按照哈希算法来存取集合对象,存取速度比较快 TreeSet :TreeSet类实现了SortedSet接口,能够集合对象进行排序。...List特征是其元素以线性方式存储,集合可以存放重复对象。 ArrayList() : 代表长度可以改变得数组。可以对元素进行随机访问,向ArrayList()插入与删除元素速度慢。...12、HashSet和HashMap区别 HashSet实现了Set接口,它不允许集合中有重复值。它存储对象 HashMap实现了Map接口,Map接口键值进行映射。Map不允许重复键。...14、Comparator和Comparable区别? Comparable 接口用于定义对象自然顺序,而 comparator 通常用于定义用户定制顺序

1.3K00

JAVA常见容器_JAVA比较容器

此接口用户可以对列表每个元素插入位置进行精确地控制。用户可以根据元素整数索引(列表位置)访问元素,并搜索列表元素。 用户插入顺序或者指定位置就是元素插入位置。...当向HashSet集合存入一个元素时,HashSet会调用该对象 hashCode()方法来得到该对象hashCode值,然后根据该HashCode值决定该对象HashSet存储位置。...当遍历LinkedHashSet集合元素时,LinkedHashSet将会元素添加顺序来访问集合元素。...Properties类可以把Map对象属性文件关联,从而把Map对象key – value写入到属性文件,也可把属性文件属性名-属性值”加载进Map对象。...TreeMap存储键值对时,需要根据key节点进行排序,TreeMap可以保证所有的key-value处于有序状态。

66820

Java基础

,那么这同一个对象调用多次,hashCode方法必须始终如一地返回同一个整数 如果两个对象通过equals方法比较得到结果是相等,那么这两个对象进行hashCode得到值应该相同 两个不同对象...它是HashMap子类,HashMap数据结构基础上,还维护着一个双向链表链接所有元素,这个链表定义了迭代顺序,同HashMap一样,key只可以有一个null,value可以有多个null 支持两种排序...:默认是元素插入顺序;可以通过设置accessOrder=true来达到访问顺序排序效果,也就是访问一个元素之后,会将它放到尾部 遍历时候,从head指针指向节点开始遍历,一直到tail指向节点...数据结构里删除,同时将其从链表里面删除 TreeMap LinkedHashMap虽然可以根据插入顺序和访问顺序排序,但是无法自定义排序规则,而TreeMap可以 实现基于红黑树,key不能为null,...如果为null没法比较,value可以为null 实现了Cloneable接口,所以它可以被克隆 默认情况下,根据其key自然顺序进行排序,这时候通过key#compareTo方法进行比较,此种情况key

58110

2024年java面试准备--集合

List是一个有序集合,可以包含重复元素,提供了索引访问方式。 Map是Java.util包另一个接口,它和Collection接口没有关系,是相互独立,但是都属于集合一部分。...TreeMap底层是红黑树,与TreeSet类似,取出来排序键值。但如果是要按自然顺序或自定义顺序遍历键,那么TreeMap会更好,有序。...是java集合一种错误检测机制,当多个线程集合进行结构上改变操作时,有可能会产生 fail-fast 机制。...对象序列化是对象持久化一种实现方法,它是将对象属性和方法转化为一种序列化形式用于存储和传输。反序列化就是根据这些保存信息重建对象过程。 序列化: 将java对象转化为字节序列过程。...加入到 Queue 元素根据它们天然排序(通过其 java.util.Comparable 实现)或者根据传递给构造函数 java.util.Comparator 实现来定位。

28931

java 集合框架

java 集合框架 个人整理集合脑图 集合概念:集合java中提供一种容器,可以用来存储多个数据。集合数组既然都是容器,它们有什么区别呢? 数组长度是固定集合长度是可变。...链表删除和增加比较快,因为可以直接通过修改链表指针(Java并无指针,这里可以简单理解为指针。其实是通过Node节点中变量指定)进行元素增删。...,HashSet会调用该对象hashCode方法来得到该对象hashCode值,然后根据该hashCode值决定该对象HashSet存储位置。...使用TreeMap时,key必须实现Comparable接口或者构造TreeMap传入自定义Comparator,否则会在运行时抛出java.lang.ClassCastException类型异常...int binarySearch(List list, Object key), List进行二分查找,返回索引,注意List必须是有序 int max(Collection coll),根据元素自然顺序

73820

java集合详解和集合面试题目

2、Set(无序、不能重复) Set里存放对象是无序,不能重复集合对象特定方式排序,只是简单地把对象加入集合。...3、Map(键值、键唯一、值不唯一) Map集合存储是键值,键不能重复,值可以重复。根据键得到值,map集合遍历时先得到键set集合set集合进行遍历,得到相应值。...但是,大多数实际情况下,我们想根据不同参数进行排序。比如,作为一个CEO,我想雇员基于薪资进行排序,一个HR想基于年龄他们进行排序。...Comparable和Comparator接口被用来对对象集合或者数组进行排序。Comparable接口被用来提供对象自然排序,我们可以使用它来提供基于单个逻辑排序。...Comparator接口被用来提供不同排序算法,我们可以选择需要使用Comparator来给定对象集合进行排序。 35.我们如何一组对象进行排序

63120

Java】一文囊括Java集合,随用随看,快速上手。

---- ②Collection遍历方法 迭代器遍历: 迭代器Java类是Irerator,迭代器是集合专用遍历方式。...int类型整数 hashCode() 定义Object类,所有类都可以调用,默认使用地址值进行计算。...键和值是一一,每一个键只能找到自己对应值。 键和值这个整体,我们称之为 键值 或 键值对对象Java叫做”Entry对象“。...哈希值:(复习) 根据hashCode()方法计算出来int类型整数 **hashCode()**定义Object类,所有类都可以调用,默认使用地址值进行计算。...注意:默认按照键从小到大顺序进行排序,也可以自己规定键排序规则。 ①实现Comparable接口,指定排序规则。 ②创建集合时传递Comparator比较器对象,指定排序规则。

17740

JAVA集合:概述

2、TreeSet(TreeMap实现) TreeSet 是使用二叉树原理新 add() 对象按照指定顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入二叉树指定位置; Integer...和 String 对象都可以进行默认 TreeSet 排序,而自定义对象是不可以,自己定义类必须实现 Comparable 接口,并且覆写相应 compareTo() 函数,才可以正常使用...---- 四、Map 映射 Map,映射代表具有映射关系键值集合,要求映射中 key 是不可变对象。不可变对象是该对象创建后它哈希值不会被改变。...4、 LinkHashMap(记录插入顺序使用 HashMap 时候,可能会遇到需要按照当时 put 顺序进行哈希表遍历。但我们知道 HashMap 不存在保存顺序机制。...LinkedHashMap 是 HashMap 一个子类, LinkedHashMap 可以保持两种顺序,分别是插入顺序和访问顺序,这个是可以 LinkedHashMap 初始化方法中进行指定

63230

Java集合 Map 集合 与 操作集合工具类: Collections 详细说明

然后再根据得到 hashCode (哈希)值,通过某种散列函数 计算除该对象 HashSet 集合底层Node[] 数组存储位置(即为:索引下标位置),(这个散列函数会与底层数组长度相计算得到在数组下标...定制排序: 创建 TreeMap 时,传入一个 Comparator 对象,该对象负责 TreeMap 所有 key 进行排序。...> list); // List 集合元素进行随机排序sort(List list) : 根据元素自然顺序指定 List 集合元素升序排序,注意是: 排序需要存储类有比较器调用 自然排序...super T>> void sort(List list); // 根据元素自然顺序指定 List 集合元素升序排序sort(List list, Comparator c) : 根据指定...super T> c); // 根据指定 Comparator 产生顺序 List 集合元素进行排序swap(List list , int i , int j ) : 将指定 list 集合

81720

Java Collections Framework - Java集合框架之概要

java.util.Arrays主要提供static方法对数组进行操作。   四、集合框架之外Map接口   Map将键映射到值对象。一个映射不能包含重复键;每个键最多只能映射一个值。   ...此类保证了映射按照升序顺序排列关键字,根据使用构造方法不同,可能会按照键自然顺序 进行排序(参见 Comparable),或者按照创建时所提供比较器进行排序。   ...Comparable接口  java.lang包,Comparable接口适用于一个类有自然顺序时候。假定对象集合是同一类型,该接口允许您把集合排序成自然顺序。 ...  String  字符串字符 Unicode 值排序     利用Comparable接口创建您自己排序顺序,只是实现compareTo()方法问题。...(1)int compare(Object o1, Object o2): 两个对象o1和o2进行比较,如果o1位于o2前面,则返回负值,如果在排序顺序认为o1和o2是相同,返回0,如果o1位于

73130
领券