现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法

2022-12-24,,,,

欢迎大家加入我的社区:http://t.csdn.cn/Q52km
社区中不定时发红包

文章目录

1、UML类图
2、源码:
3、优缺点分析

1、UML类图


2、源码:

package com.back.zheng;

public interface DataOperation {
public void sort(int data[]);//排序方法
public void search(int[] list,int key);//查找方法 }

package com.back.zheng;

public class SuanFaAdapter implements DataOperation {
private QuickSort quicksort; // 定义适配者QuickSort的对象
private BinarySearch binarysearch; // 定义适配者 BinarySearch的对象
// 构造函数初始化适配者对象 public SuanFaAdapter() {
quicksort = new QuickSort(); // 实例化QuickSort对象
binarysearch = new BinarySearch(); // 实例化 BinarySearch对象
} @Override
public void sort(int data[]) {
// 建立连接实现快速排序
quicksort.quickSort(data);// 通过对象调用实现快速排序的功能 } @Override
public void search(int[] list, int key) {
// 建立连接实现二分查找
binarysearch.binarySearch(list, key);// 通过对象调用实现二分查找的功能 } }

package com.back.zheng;

public class QuickSort {
//快速排序
public void quickSort(int data[]) {
java.util.Arrays.sort(data); //直接调用排序方法
print(data);
}
//数组输出 public void print(int data[]) {
for(int x=0;x<data.length;x++) {
System.out.print(data[x]+"、");
}
} }

package com.back.zheng;

public class BinarySearch {
// 二分查找
public void binarySearch(int[] list,int key) {
// 调用java.util.Arrays的binarySearch二分查找方法
System.out.print(java.util.Arrays.binarySearch(list, key));
} }

package com.back.zheng;

public class Client {

	public static void main(String[] args) {
// TODO 自动生成的方法存根
//定义一个数组
int data[]=new int[] {2,4,1,5,3,8,6,7};
DataOperation operation; //定义接口对象
operation=new SuanFaAdapter(); // 实例化接口对象向上转型
System.out.println("排序前的数组:");
for(int i=0;i<data.length;i++) {
System.out.print(data[i]+"、");
} System.out.println("\n\n排序后的数组");
operation.sort(data);//调用排序
//查找数据4所在的下表
System.out.println("\n\n输出数字4所在的索引:");
operation.search(data,4);//调用查找 } }

3、优缺点分析

优点:1、将目标类和适配者类解耦。2、增加了类的透明性和复用性,通过一个适配器可以重用现有的适配者类。3、灵活性和扩展性好,符合开闭原则。
缺点:1、对于java、c++等不支持多重继承的语言,一次最多只能适配一个适配者。2、适配者不能作为最终类。3、在java等语言中类适配器的目标抽象类必须是接口,不能为类。

现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法的相关教程结束。

《现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法.doc》

下载本文的Word格式文档,以方便收藏与打印。