Java集合就像一种容器,我们可以将多个对象(实际上是对象的引用,但习惯上都称为对象)“丢进”容器。
集合框架图(所画为常用关系)
HashSet :
1、不能保证元素的排列顺序,顺序有可能发生改变;
2、HashSet不是同步的,多个线程访问一个HashSet时,必须通过代码来保证其同步;
3、集合元素可以是null;
当向HashSet中存入元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode(),然后根据HashCode值决定对象在HashSet中存储位置。如果有两个元素通过equals方法比较返回true,但他们的hashCode()方法返回值不相等,HashSet会将它们放在不同的位置;
简单的说,两个元素相等的标准是:equals相等、hashCode()相等;
测试
public class A {
public boolean equals(Object obj) {
return true;
}
}
public class B {
public int hashCode() {
return 1;
}
}
public class C {
public int hashCode() {
return 2;
}
public boolean equals(Object obj) {
return true;
}
}
public class Test {
public static void main(String args[]) {
HashSet set = new HashSet();
// set中添加对象
set.add(new A());
set.add(new A());
set.add(new B());
set.add(new B());
set.add(new C());
set.add(new C());
System.out.println(set);
}
}
结果:[testSet.B@1, testSet.B@1, testSet.C@2, testSet.A@1fb8ee3, testSet.A@c17164]
ArrayList,Vector,LinkedList
ArrayList,Vector都是基于数组实现的List的类,它们最显著的区别是:ArrayList是线程不安全的,而Vector是线程安全的,所以性能上要比ArrayList低。Vector还提供了一个Stack子类,它用于模拟“栈”这个数据结构;
LinkedList是基于链表实现的List类,可以根据索引随机访问集合中的元素,可以当作List使用,另外它也实现了Deque接口,Deque接口是Queue接口的子接口,它代表一个双向队列,根据Deque中的方法,它中以当作双向队列和“栈”使用;与前两种实现类相比而言,它更适合插入、删除元素(只要改变指针所指的地址即可),基于数组实现ArrayList,Vector则更适合随机访问;数组在实现机制上是以连续内存区保存元素;
HashMap,Hashtable
Hashtable是一个线程安全的Map实现类,HashMap是线程不安全的实现类,所以性能上要比Hashtable高,Hashtable不允许null作为key、value,如果试图插入null时会报NullPointException异常,但是HashMap则可以;
操作集合的工具类Collections,该工具类提供了大量的方法对集合元素进行排序、查找和修改等操作,还提供了将集合对象设置为不可变,对集合对象实现同步控制等方法。
- 大小: 23.5 KB
- 大小: 7.7 KB
分享到:
相关推荐
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
Java集合框架是Java编程语言中的一个核心组成部分,它为存储、管理和操作对象提供了一套统一的接口和类。本文将深入解析Java集合框架的各个方面,包括Collection、List、Set和Map,以及它们的相关实现和使用原理。 ...
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
### Java集合框架详解 #### 一、Java集合框架概述 Java集合框架是Java标准库的重要组成部分,它提供了存储和操作对象的各种数据结构。通过使用集合框架,开发人员可以轻松地管理不同类型的数据集,并且能够利用...
Java集合框架是Java编程语言中一个至关重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理各种类型的数据。本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java...
集合是将多个元素组成一个单元的...Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中
Java集合框架是Java编程语言中的核心部分,它提供了一组高效、灵活的数据结构,使得开发者可以方便地存储和管理各种类型的数据。Java集合框架主要包括两大类:Collection和Map。 Collection接口是所有单值容器的父...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6....
JAVA学习 Java集合框架.ppt
面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣逆袭 Java 集合框架篇.pdf面渣...
Java集合框架,set、list接口及其子集,接口的继承关系
根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...
《数据结构和Java集合框架》是清华大学出版社出版的一本经典教材,主要涵盖了计算机科学中的核心概念——数据结构以及Java编程语言中的集合框架。这本书通过深入浅出的方式,讲解了如何用Java实现各种常用的数据结构...
一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用