gpt4 book ai didi

java对一组数据的不同排序方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:31 25 4
gpt4 key购买 nike

假设我正在将 n 个字符串收集到一个数组、数组列表或其他一些数据结构中。我想提出一个设计,允许用户指定字符串的排序方式:

- 如果用户指定选项A,那么Strings将被放入一个Vector中,然后排序并打印。

-如果用户指定选项B,则将Strings放入一个List中,然后排序打印。

我希望我的设计足够灵活,以便我可以在将来轻松添加其他排序方法(以及我的排序方法)。

我目前的实现涉及将用户的字符串收集到一个 ArrayList 中,然后根据指定的排序方法,我将使用 Collections.copy(array, vector) 或 Collections.copy(array, list)。然后,我将执行 Collections.sort(vector or list)。

(目前,我在 Collections.copy 上收到 NullPointerExceptions)...

我不确定我是否以最佳、最可重用的方式进行处理。有什么想法吗?

谢谢!

最佳答案

你需要使用Java提供的接口(interface)。当你接受一个 ArrayList 时,你是在将一个实现强加给用户。收一个Collection<String>他们可以使用任何他们想要的东西。

如果你想强制它们进入 List 实现,你只需指定 List<String>作为参数。然后他们可以使用 Vector、ArrayList、LinkedList 等。

为了实现排序,您只需传入一个 Comparator。并调用Collections.sort(myList, myComparator);

所以你最终会得到类似...

public List<String> sortThem(List<String> strings, Comparator<String> comp) {
... do cool things ...

Collections.sort(strings, comp);

return strings;
}

关于java对一组数据的不同排序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877693/

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