热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java中集合选择(精简)

集合类中只能存放对象,而不能存放原始数据类型的元素,所以当有原始数据类型需要存放时,只能将其转换成相应的包装类对象。1)访问和遍历数组元素时,ArrayList的
集合类中只能存放对象,而不能存放原始数据类型的元素,
所以当有原始数据类型需要存放时,只能将其转换成相应的包装类对象。




1)访问和遍历数组元素时,ArrayList的性能优越;


2)与ArrayList相比,如果需要频繁地添加和删除元素,LinkedList的性能更加优越;


3)Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作.


4)Vector类与ArrayList类和LinkedList类很相似,最大的区别在于Vector是线程同步的;如果在多线程的程序中要使用到集


合框架,并且不希望线程与线程之间相互干扰,那么Vector是不错的选择;


5)同步是安全的
异步是不安全的


6)接口
HashSet、TreeSet、LinkedHashSet都是set类型,它们的区别?
HashSet提供了最快的查找技术,TreeSet按照比较结果的升序保存对象,LinkedHashSet按照添加顺序保存对象。
HashMap、TreeMap和LinkedHashMap跟上面一样


7)如要快速检索元素的话,HashMap性能优越;(注意:有hash这个词在里面的都是无序的)
HashMap是键值对应的形式存储元素的
HashTable允许使用 null 值和 null 键。



8)可重复存储对象:ArrayList、
不可重复:HashSet、TreeSet、LinkedHashSet


9)Queue:队列,先进先出


10)如何选择集合类
1. 无顺序要求,选HashSet
2. 对顺序有求,选ArrayList
3. 要顺序,经常修改,选LinkedList
4. 键-值  HashMap


11)总结
java.util包中包含一系列常用的工具类和集合框架类;
Date类和Calendar类用来操作日期和时间;
可以使用Random类的对象来生成随机数;
集合框架提供了一系列复杂的数据结构和优越的算法;
ArrayList类可以创建动态数组;
LinkedList类可以创建链表结构;
Vector类可以创建线程同步的动态数组;
HashMap类可以创建键值对集合。

推荐阅读
  • 单线程化的ConcurrentHashMap的性能要比同步的HashMap的性能稍好一些,而且在并发应用中,这种作用就十分明显了。ConcurrentHashMap的实现,假定大多数常用的操 ... [详细]
  • HashTable与ConcurrentHashMap均可实现HashMap的功能,对外提供了键值对存储的数据结构。但是在内部结构及实现上有何区别,性能上的差异到底在哪里又是如何导致的 ... [详细]
  • 类Hashtable<K,V>所有已实现的接口:Serializable,Cloneable,Map<K,V>此类实现一个哈希表,该哈希表将键映 ... [详细]
  • 在Java中有多种遍历HashMap的方法,注意Java中所有的Map类型都实现了共有的Map接口,所以接下来方法适用于所有Map(如:HaspMap,TreeMap,Linked ... [详细]
  • hashmap线程不安全允许有null的键和值效率高一点、方法不是Synchronize的要提供外同步有containsvalue和containsKey方法HashMap是Java1 ... [详细]
  • 这篇“HashMap实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅 ... [详细]
  • 一、HashMap1.HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是 ... [详细]
  • HashMap和Hashtable的区别主要的区别有三点:线程安全性,同步(synchronization),以及速度。(两者都是无序排放)HashMap几乎可以等价于Hashtable,除了Hash ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • HashMap、Hashtable、LinkedHashMap和TreeMap之间的区别Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许& ... [详细]
  • 源码阅读之HashMap(JDK8)
    概述HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。HashMap最多只允许一条记录的键为null,允许多条记 ... [详细]
  • 要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复 ... [详细]
  • 常用API-Hashtable类及其与HashMap、HashSet的区别转载请表明出处:http:blog.csdn.netu012637501(嵌入式_小J的天空)一、Hashtable&l ... [详细]
  • 最近无聊,用BCB多线程操作一下数据库,没想到开两个线程,做查询操作和插入操作,点击得快一点就出现占线错误,当场晕倒,一看就是查询问题,翻了本网站的所有记录,解决方法有几个,就是不能解决!JAVA里面 ... [详细]
author-avatar
用户7krcbz6eb6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有