惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Archives - TechRepublic
MongoDB | Blog
MongoDB | Blog
量子位
博客园 - 叶小钗
罗磊的独立博客
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
MyScale Blog
MyScale Blog
GbyAI
GbyAI
Help Net Security
Help Net Security
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
Hacker News - Newest:
Hacker News - Newest: "LLM"
Latest news
Latest news
H
Hacker News: Front Page
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
S
Schneier on Security
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
Security @ Cisco Blogs
Recorded Future
Recorded Future
S
Securelist
博客园 - Franky
Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
About on SuperTechFans
N
News and Events Feed by Topic
AI
AI
T
Tenable Blog
N
News | PayPal Newsroom
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX - 技术
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
Webroot Blog
Webroot Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 三生石上(FineUI控件)
C
Comments on: Blog
G
GRAHAM CLULEY

博客园 - Rainbow

正向代理与反向代理(转) Java equals()和hashCode()的作用 java 内存模型 java 面向对象 java string java 数据类型 Java 笔记 字符编码详解及由来(UNICODE,UTF-8,GBK)[转帖] C# 值类型和引用类型 说明 Android drawable文件夹含义 Android Button 单击事件 Android TextView setText 使用 转一篇博文 Java中==和equals的区别 FTP 链接上,但是列不出目录 出现:425 Can't open data connection Android开发中插入新的Activity CentOS常用命令 CentOS5.6 python2.4.3升级到2.7.2 yum命令全集详解
java 集合
Rainbow · 2012-01-10 · via 博客园 - Rainbow

2012-01-10 19:17  Rainbow  阅读(972)  评论()    收藏  举报

在java中,集合相关的内容多放在 java.util 包里面。java的集合主要有Collection接口和Map接口,同时还有Iterator 这个接口是实现foreach(for T in C)的遍历集合元素的操作。

image

  • Collection 接口类方法:

方法名 描述
add(Object o) 像集合中加入一个对象的引用
void clear() 清空集合中所有对象的引用
contains(Object o) 判读集合中是否存在特定对象的引用
Iterator iterator 返回一个Iterator对象,使用foreach遍历
remove(Object o) 从集合中删除特定对象的引用
size() 返回集合的元素数目
Object[] toArray() 返回一个数组
isEmpty() 判读集合是否为空

以上是collection接口的共有方法,特定的子类还包含自己特有的有些方法。如 addAll(),first(),indexOf(),get()等等。

  • Iterator 接口的方法

方法 描述
hasNext() 判断是否已经到底
next() 返回下一个元素
remove 从集合中删除由上一个next()返回的对象
  • 集合类方面的异同:

image

① 如果涉及到堆栈,队列等操作,应该考虑用List。如果要进行大量的随机访问,应使用ArrayList;如果经常进行插入与删除操作,用使用LinkedList。

② HashMap设计用来快速访问;而TreeMap保持“键”始终处于排序状态,所以没有HashMap快。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。

③ Set不接受重复元素。HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保存元素。

④ 对哈希表的操作,作为key的对象要正确重写equals和hashCode方法。

⑤ 尽量返回接口而非实际的类型(针对抽象编程),如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。

⑥ 程序中不应该使用过时的Vector\Hashtable\Stack。

  • 常见的问题

collection和collections有啥区别?

collection是java中关于集合的接口。而collections是java.util中的类,它包含了对集合操作的静态方法。

HasMap和Hastable的区别?

都属于Map接口的类,实现了将惟一键映射到特定的值上。

HasMap类没有分类和排序。它允许一个null键和null值。

Hastable类似于HasMap但是不允许null键和null值。因此比Hasmap慢。

其实关于集合的内容还非常多。好比,排序,性能等方面。以后需要写一篇专门的文章。