gpt4 book ai didi

java - 容器和算法

转载 作者:行者123 更新时间:2023-11-29 03:45:14 25 4
gpt4 key购买 nike

我目前正在尝试学习 Java,并且我正在尝试通过实现我自己的容器类来学习它。我的问题是:
如果我已经实现了比方说三个不同的容器类,我确实希望能够以三种不同的方式对它们中的每一个进行排序,所以我有:

Container_one with sort_1, sort_2, sort_3  
Container_two with sort_1, sort_2, sort_3
Container_three with sort_1, sort_2, sort_3

其中 sort_1、sort_2 和 sort_3 在每个容器中都是相同的算法(但它们彼此不同),有没有一种方法可以只实现一次,然后在其他容器中重用它们,或者我是否必须每次都实现它们什么时候实现新容器?
谢谢。

最佳答案

将算法与其运行的数据结构分开的一种方法是考虑实现算法所需的操作,将这些操作抽象为接口(interface),根据接口(interface)对算法进行编码,然后让所有数据结构实现接口(interface)。

例如,假设您的排序算法需要一种方法来比较位置 i 处的项目和 j ,以及一种交换元素的方法ij .然后您的界面将如下所示:

interface Sortable {
int compare(int i, int j);
void swap(int i, int j);
}

现在您可以根据 Sortable 实现您的排序器:

void sort1(Sortable container) {
// first way to sort
}

void sort2(Sortable container) {
// second way to sort
}

最后,让容器实现 Sortable :

class CoolContainer1 implements Sortable {
public int compare(int i, int j) {
...
}
public void swap(int i, int j) {
...
}
// other operations
}

class CoolContainer2 implements Sortable {
public int compare(int i, int j) {
...
}
public void swap(int i, int j) {
...
}
// other operations
}

请注意,以上所有只是对您的学习练习的建议。 Java 提供了强大的排序工具,可用于列表和数组,并允许您尽可能详细地指定排序顺序。在 Collections.sort 处循环方法获取更多信息。

关于java - 容器和算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com