Java集合与数组
1.Java2提供了一 个完整的集合框架,而Java的早期版本只提供了一些集合类,如Hashtable和Vector,以及内建的数组功能。
2.组成集合框架的类和接口是java.util包的成员,Arrays类提供了用于操作数组的static方法,Aarrys类的方法包括用于查找的binarySearch方法,用于比较数组的equals方法,用于给数组赋值的fill方法,以及排序的sort方法和asList方法。另外对Arrays类中的对象进行排序,对象必须实现Comparable接口的compareTo方法
4.Collection接口是集合层次结构中的根接口,Set接口和List接口都是从Collection接口中派生出来的,Collection接口包含了在集合中添加,清除,比较和保持对象的大规模操作。Collection接口提供了iterator方法得到Iterator。
5.Collections类提供了许多操作集合的static方法,其中许多方法实现用于查找和排序等。
6.List是一个能包含重复元素的已排序的Collection,有时候List也称为序列,List接口由ArrayList类,LinkedList类和Vector实现的,ArrayList是List可变数组的实现,类似Vector类的行为和功能,LinkedList则是List的链表实现。
7.iterator的hasNext方法collection是否还含有另外一个元素,如果还有,则hasNext方法返回true,next方法返回Collection中的下一个对象并移动到下一个元素。
8.subList得到List的一部分,这一部分被称为子表,对子表的修改都会影响到List,clear方法从List中删除元素,
9.toArray方法以数组的形式返回集合中的内容。
10.Comparator对象提供一种排序方式,可以按不同Colletion自然顺序的顺序对Collection的元素排序,reverseOrder方法返回一个Comparator对象,它代表了集合的逆转排序。也可以实现你自己的排序方法,前提是实现Comparator接口,并实现Comparator接口的compare方法
11.Shuffle算法对list中的元素进行随机排序,binarySearch算法在List中查找一个Object
12.Set是不包含重复元素的Collection,集合框架含有Set的两种实现方式:HashSet和TreeSet,HashSet把他的元素存储在哈希表中,而TreeSet则把他的元素存储在树中。
13.SortedSet接口扩展了Set并按排好的顺序维护了它的元素,TreeSet类实现了它。
14.headSet方法得到TreeSet中小于一个指定元素的子集,对这一子集的修改都会反映在TreeSet中,tailSet方法得到大于或等于指定元素的子集,同样对它的修改都会反映在TreeSet中。
15.Map把键映射到值并不包含重复的键,Map和Set的不同之处在于Map包含键和值,而Set只包含键,HashMap和TreeMap类实现了Map接口,HashMap把他的元素存储在哈希表中,而TreeMap则把他的元素存储在树中。
16.SortedMap接口扩展了Map并按排好的顺序维护了它的元素,TreeMap类实现了它。
17.内建的集合都是异步的,多线程对Collection的并发访问可能导致不确定的结果,为了防止这个问题,可以在被多线程访问的类外面使用同步包装类,Collections类提供了一系列的static方法把集合转化成不可以修改的形式,当试图修改时,抛出异常。
Public static方法头文件:(同步)
Collection synchronizedCollection(Collection c);
List synchronizedList(List c)
其他类似。。
Public static方法头文件:(不可以修改)
Collection unmodifiableCollection(Collection c);
List unmodifiableList(List c)
其他类似。。
集合框架提供了不同的抽象实现,程序员可以利用此来实现自己定义的实现!
18.数组和容器的区别主要有以下三点:效率,类型识别以及可以持有primitives
19.容器类保持的类型都是Object的,主要有三种 list ,set, map,容器的缺点主要是保存元素的时候,丢失元素的类型,使用元素的时候,必须进行类型转换
20 list的选择:
ArrayList随机访问的效率要比LinkList快,但是LinkList顺序访问的效率则高过ArrayList,另外LinkList在对元素进行插入和删除操作时要比ArrayList的效率高,二者的最佳选择方法是:首先选用ArrayList当发现“向元素中插入和删除操作太多时”引发性能问题时,换用LinkList,当然处理固定元素还是选用数组
21.set的选择:
HashSet的各项性能都要比TreeSet强,但是TreeSet的意义在于能顺序保存元素,因此只有在需要有顺序set时才用TreeSet;
LinkedHashSet的插入操作要比HashSet慢,主要是因为前者承担了链表和hash容器的双重代价,由于链表的缘故LinkedHashSet的遍历则要比 HashSet快
22.Map的选择:
HashMap的效率和HashTable差不多,一般来说HASHMAP要稍快,HASHMAP是用来取代HASHTABLE的,TREEMAP的效率要比HAHSMAP低,但是TREEMAP由于是树结构,所以是有序的,因此不需要进行排序操作,如果不需要恒定有序的MAP时,一般来说首选HASHMAP,LINKEDHASHMAP比HASHMAP要慢,因为除了保存HASH容器外还有保存链表,IDENTITYHASHMAP没有办法和上叙MAP比较,它用的是==来比较两个对象的相等性,而不是equals()
23.所有hash类容器持有的对象必须覆盖hashcode和equals方法
分享到:
相关推荐
Java集合和数组是Java编程语言中的基础数据结构,它们用于存储和管理数据。数组是一种简单的数据结构,可以存储同类型的元素序列,而集合是Java集合框架的核心部分,提供了更高级的数据管理和操作功能。 ### 数组 ...
Java集合框架是Java编程语言中的一个核心组成部分,它为存储、管理和操作对象提供了一组统一的接口和类。集合的概念是面向对象编程中用来组织数据的重要工具,它允许我们存储一组对象,根据需要进行添加、删除、修改...
6. **工具类**:Collections和Arrays类提供了很多实用的静态方法,如排序、复制、填充集合和数组,以及集合与数组之间的转换。此外,Stream API的引入为集合操作提供了更简洁的函数式编程方式。 7. **并发处理**:...
Java 集合框架是由 Java 平台标准版 1.2 引入的通用数据结构与算法框架。其灵活的面对对象设计受到了广大 Java 程序员的一致青睐,为 Java 平台的成熟奠定了坚实的基础。 线程安全不是一个全有或全无的问题,难以对...
* 相同点:类集和数组中存放的元素都是实例对象 * 不同点:类集的长度可以随意扩展,而数组的长度是固定的 类集的使用注意: * 在程序中,如果只声明类集对象,而没有实例化该类集对象,则无法使用该类集对象 * 类...
在Java中,集合主要分为两大类:List和Set,而Map则不直接属于集合,但与集合框架紧密相关。 1. **List接口**:List是一种有序的集合,允许元素重复,并且可以按照索引访问。ArrayList和LinkedList是List接口的主要...
例如,创建一个整数数组: ```java int[] numbers = new int[]{1, 2, 3, 4, 5}; ``` 最后,我们谈论的是`集合`(Collections)框架。集合框架是Java API中的一部分,它提供了多种数据结构,如Set、List、Queue等,...
### JAVA集合详解 #### 一、集合框架概述 ##### 1. 什么是JAVA集合框架? JAVA集合框架(Java Collection Framework)是一种为表示和操作集合所规定的标准体系结构,旨在为开发人员提供一种灵活且高效的机制来...
本资源摘要信息涵盖了Java集合知识的多个方面,包括集合和数组的区别、Collection接口的方法、ArrayList和LinkedList的特点、队列的特点、泛型的使用等。 1. 集合和数组的区别 集合和数组是Java中两种常用的数据...
"用 Java 解线性方程组" 本文档旨在利用 Java 编程语言解决线性方程组的问题,并提供了详细的示例代码和步骤来实现矩阵操作。 知识点 1:增广系数矩阵 增广系数矩阵是线性方程组的矩阵表示形式,用于表示方程组的...
根据给定的信息,本文将详细解析“Tedu一段Java集合Collection”的知识点,涵盖集合的基本概念、集合框架中的关键接口、`Collection`接口的核心方法、集合的遍历方式、泛型的应用以及集合与数组之间的相互转换。...
### Java集合类总结 #### 一、概述 Java集合类框架是Java标准库的一个重要组成部分,主要用于存储和处理数据集合。这些集合类被定义在`java.util`包中,为开发者提供了灵活的数据结构来实现各种应用程序的需求。...
集合和数组的区别: 1.集合是大小可变的序列,数组在声明后,长度不可变 2.数组只能存放声明时指定的一种数据类型,集合可变存放多种数据类型 3.数组可以存放基本数据类型,集合只能存放对象 ps:要想往集合中...
集合和数组的区别是:集合可以存储多个元素,可以重复元素,可以插入、删除、遍历等操作,而数组固定长度,不能插入、删除元素。 使用集合框架的好处 使用集合框架的好处是:可以存储多个元素,可以重复元素,可以...
list转数组
java基本数据类型和数组,java编制0-255之间的UNICODE编码表
集合和数组的区别 数组和集合的主要区别在于:数组是固定长度的,集合是可变长度的;数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型;数组存储的元素必须是同一个数据类型,集合存储...
Java字符串和数组是Java编程语言中的基本概念,对于任何Java开发者来说,理解和掌握它们都是至关重要的。在这21页的PDF教程中,我们很可能会深入探讨这两个核心主题。 首先,让我们来谈谈Java中的字符串。在Java中...
当一个较小的数据类型(如byte、short或char)与一个较大的数据类型(如int、long、float或double)进行运算时,较小的数据类型会被自动提升到较大的数据类型。在给定的题目中,byte类型的x除以double类型的y会产生...