专业的JAVA编程教程与资源

网站首页 > java教程 正文

5分钟课堂:Java集合框架_java 集合类框架的最佳实践有哪些?

temp10 2025-02-21 15:29:14 java教程 15 ℃ 0 评论

集合框架(Collections Frameworks)是Java 平台提F供的表示和操作集合的统一架构。

集合框架组成

集合框架包含以下3 个部分。

5分钟课堂:Java集合框架_java 集合类框架的最佳实践有哪些?

(1)集合接口
用于表示集合的抽象数据类型,允许集合操作独立于实现细节。接口多用于方法的参数类型。

(2)集合实现
实现了对应集合接口的具体类,本质上是可重用的数据结构。 实现类可以创建具体的对象。

(3)集合算法
算法是对实现了集合接口的对象执行具体计算(如查找、排序等)的方法。同一个方法可以用于相关集合接口的不同实现。这些方法可以看成是工具方法,一般都是static 方法,可以用类名直接调用。本质上,算法是可重用的功能。

Java中集合的接口和类都是泛型类型(参考 5分钟课堂:Java泛型类型 ),而算法大多是泛型方法(参考 5分钟课堂:Java泛型方法)。

集合接口

Java 集合框架中的核心集合接口中封装了不同的集合类型,允许集合的操作独立于集合的具体实现。

核心接口是Java 集合框架的基础,Java 集合框架中的核心接口主要包括:Collection、Set、List、Queue、Deque、SortedSet 和Map、SortedMap 等接口。

核心集合接口包含两个独立的继承树,集合(Collection)子树和映射(Map)子树。集(Set)是一种不包含重复元素的集合(Collection),而有序集(SortedSet)则是包含有序元素的集(Set)。

所有的核心集合接口都是泛型接口。在创建集合实例时,必须指定具体元素类型。

Java集合框架种主要的集合核心接口及部分实现类如图所示。

集合实现

集合实现是用于存储集合的数据对象,其类定义实现了对应的集合接口。Java 集合框架提供的通用功能实现类实现了Set,List 和Map 等接口,这些具体实现类可以满足大多数应用的需要。


集合算法

Java 集合框架提供了集合的排序、置换、常规数据操作、查找、组合等算法。这些算法都是多态算法,提供可重用的功能,并且,全部使用静态方法,方法的第一个参数为操作执行的集合。大多数算法都是针对List 对象,也有部分是操作Collection 对象。

例如,在工具类Collections中提供的算法有:

(1)根据元素的自然顺序对指定列表元素按升序进行排序
public static > void sort(List list);

(2)使用默认随机源对指定列表打乱元素的位置
public static void shuffle(List list);

(3)使用二分搜索法搜索列表中的指定对象
public static int binarySearch(List> list,T key);

应用示例

下面例子以List的元素操作为例,实现了ArrayList对象的创建、加入元素、排序和查找等操作。其中,排序还使用了自定义的逆序比较器进行了逆序的排序,并进行了对应的查找操作。

import java.util.*;

class DescendComparator 
	implements Comparator {
	public int compare(String s1, String s2) {
		return (s2.compareTo(s1));
	}
}

public class TestCollectionsSearch {
	public static void main(String[] args){
		//使用List接口和实现类创建对象
		List nameList = new ArrayList<>();
    
		//添加元素对象
		nameList.add("RJ软件");
		nameList.add("BJ北京");
		nameList.add("JT交通");
		nameList.add("DX大学");
				
		String toBeFind = "RJ软件";
				
		//自然顺序排序	
		Collections.sort (nameList);
		System.out.println ("\n自然顺序排序:");
		for (String s : nameList) 
			System.out.println(s);
    
		//查找
		System.out.println("\n查找[" + toBeFind + "]");
		int pos = Collections.binarySearch(nameList,toBeFind );
		System.out.println ("\n查找结果位置:" + pos);
		
		//使用比较器,逆序排序	
		System.out.println ("\n使用比较器,逆序排序:");
		DescendComparator sComp = 
			new DescendComparator();
		Collections.sort (nameList, sComp);
		for (String s : nameList) 
			System.out.println(s);
    
		//查找,也需要使用比较器参数
		System.out.println("\n查找[" + toBeFind + "]");
		pos = Collections.binarySearch(nameList, toBeFind, sComp);
		System.out.println ("\n查找结果位置:" + pos);
	}
}

运行结果如下:


自然顺序排序:
BJ北京
DX大学
JT交通
RJ软件

查找[RJ软件]

查找结果位置:3

使用比较器,逆序排序:
RJ软件
JT交通
DX大学
BJ北京

查找[RJ软件]

查找结果位置:0

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表