最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

java集合相关操作

来源:动视网 责编:小OO 时间:2025-09-28 12:42:43
文档

java集合相关操作

Java集合相关操作java中的集合可以理解为一个容器,主要包括映射(map)、集合(set)、列表(list)、数组(array)和散列表(Hashtable)等抽象数据结构。集合框架内部主要是一些精心设计的接口、类和相关算法组成。其基本上全部放在java.util包中。一、数组类:在数组类中,其所有的方法基本上都是静态的,也意味着这些方法可以直接通过数组名进行调用。数组类可以看作是对数组相关操作的一个有力补充。常见的方法有二分搜索、判断两数组是否相等、填充数组、对数组排序以及将数组以字符串
推荐度:
导读Java集合相关操作java中的集合可以理解为一个容器,主要包括映射(map)、集合(set)、列表(list)、数组(array)和散列表(Hashtable)等抽象数据结构。集合框架内部主要是一些精心设计的接口、类和相关算法组成。其基本上全部放在java.util包中。一、数组类:在数组类中,其所有的方法基本上都是静态的,也意味着这些方法可以直接通过数组名进行调用。数组类可以看作是对数组相关操作的一个有力补充。常见的方法有二分搜索、判断两数组是否相等、填充数组、对数组排序以及将数组以字符串
Java集合相关操作

    java中的集合可以理解为一个容器,主要包括映射(map)、集合(set)、列表(list)、数组(array)和散列表(Hashtable)等抽象数据结构。集合框架内部主要是一些精心设计的接口、类和相关算法组成。其基本上全部放在java.util包中。

一、数组类:

在数组类中,其所有的方法基本上都是静态的,也意味着这些方法可以直接通过数组名

进行调用。数组类可以看作是对数组相关操作的一个有力补充。常见的方法有二分搜索、判断两数组是否相等、填充数组、对数组排序以及将数组以字符串形式输出等等。

    在此,对于数组类中的一些方法的使用问题,总结几个常见的解决技巧:

▲排序问题

在数组类中所提供的排序方法只有sort方法,它是按照自然顺序进行排列的,那怎样实

现倒序呢?解决方法如下:

    当然第一种方法就是通过重新编写代码(倒序)来实现,这样比较麻烦。另外一种方法我们可以运用下集合类Collections中所提供的一些好的方法reverse()来实现倒序。现在的关键是如何将数组元素转载到集合类中,可以想到的方法就是将数组中的元素一个一个装载到ArrayList中,然后调用反转方法就OK了!!代码如下:

▲数组与字符串联动

Arrays类提供了一个桥梁toString方法,为数组与字符串之间的互动提供了作用。这样

的话通过转换成字符串后,就可以利用字符串中的一些好的方法了。不过需要注意的是toString在很多地方都会出现,最原始出现的地方实在Object类中,在这个地方该方法返回的是对象的字符串表示,所以,在更多的情况下,一般是把这个方法重写了。

二、基本的集合接口

在这一节,将介绍常见的集合接口:Collection接口和Map接口。此外还有Collections

类,其主要是为集合对象提供一些静态方法。其层次关系如下:

(一)Set(集合)接口

集合是一个不包含重复元素的对象集合,其实际上是对数学中的集合概念的一种抽象,在Set接口所定义的方法中,有几个特别适用的方法:如addAll、iterator、retainAll、toArray.

addAll(Collection e)--------将Collection e中的所有数据加入

iterator()---------可以按序输出集合对象中的元素

retainAll(Collection e)---------仅保留那些包含在Collection中的元素

toArray()------------返回一个包含Set中所有元素的数组

【延伸】一个很经典的编程应用(利用Set特点):(程序需要接收命令行参数。)

1、HashSet和TreeSet

两者都实现了Set接口,两者的最大区别则是:HashSet创建的是一个无序的集合对象,

而TreeSet类则是有序的集合对象。因此,当需要从集合中有序地获取元素时,可考虑采用TreeSet来建立对象,可以利用这一点,将HashSet对象中的元素按序输出。

(二)List(列表)接口    

 在此,我先将几种接口做个简单的比较:

Collection接口-------是一组允许重复的对象

Map接口-----------所包含的是一个键-值对

Set接口-----------继承Collection,但不允许接口中出现重复的元素

List接口---------继承Collection接口,允许集合中出现有重复,并引入位置索引    

    列表是指一个有序的对象集合,通过列表接口,可以利用整数索引对列表中的每个元素进行准确的控制,包括对特定位置的元素进行查询等。同样List接口中也有些比较实用的方法,如addAll、get、indexOf、iterator和listIterator、subList、toArray等。

get(int index)-----------返回列表中指定的元素

indexOf(Object o)-----返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回-1。

lastIndexOf(Object o)----返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回-1。

listIterator()-------返回此列表元素的列表迭代器(按适当顺序)。

listIterator(int index)-------- 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。

在此我着重讲解下列表特有的迭代器listIterator:

    listIterator接口继承了Iterator接口,在Iterator接口中,只有三个方法可以用,即hasNext、next和remove。可以实现按序输出集合对象中的元素。而listIterator接口在原有接口基础上增加了一些实用的方法,说得更加直接一点,那就是后者在前者的基础上允许一边遍历集合,还可以同时进行一些修改操作,如删除、替换等。另外它还允许逆向遍历集合对象。

    ■ ArrayList和LinkedList

ArrayList和LinkedList两种都实现了list接口,前者时通过数组方式实现的,而后者则是通过链表结构来实现的,因此,双方各自所提供的方法也都有差异,若相对列表结构的开始和结束处有频繁的添加或删除操作时,可以考虑使用链表结构来实现。 

(二)映射(Map)

映射接口描述了不重复的键到值的映射,并且一个映射对象中不能包含重复的键,且

每个键只能映射到一个值。这点其实是数学中的“一一映射”关系的一个抽象。我们先来看看映射接口常见的一些方法。

containsKey(Object key)------- 如果此映射包含指定键的映射关系,则返回 true。

containsValue(Object value)----- 如果此映射将一个或多个键映射到指定值,则返回 true。

keySet()-------返回此映射中包含的键的 Set 视图。

values()------返回此映射中包含的值的 Collection 视图。

■HashMap和TreeMap类

HashMap是基于哈希表实现的,而TreeMap是基于红黑树来实现的。红黑树总是处于平衡状态,而为了优化HashMap空间的使用,可以调试初始的容量和负载因子,HashMap的默认初始容量为16,默认加载因子为0.75。至于两者个字的优点,在往Map中插入、删除和定位元素,HashMap是最好选择;若需要按顺序遍历键值,则选择TreeMap比较好些。

文档

java集合相关操作

Java集合相关操作java中的集合可以理解为一个容器,主要包括映射(map)、集合(set)、列表(list)、数组(array)和散列表(Hashtable)等抽象数据结构。集合框架内部主要是一些精心设计的接口、类和相关算法组成。其基本上全部放在java.util包中。一、数组类:在数组类中,其所有的方法基本上都是静态的,也意味着这些方法可以直接通过数组名进行调用。数组类可以看作是对数组相关操作的一个有力补充。常见的方法有二分搜索、判断两数组是否相等、填充数组、对数组排序以及将数组以字符串
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top