gpt4 book ai didi

java - 比较链表中的元素

转载 作者:行者123 更新时间:2023-12-01 23:09:55 25 4
gpt4 key购买 nike

我有一个队列实现,如下所示。

static String a = "1 0 2014/03/03 01:34:39 0.0 0.0 0.0";
static String b = "2 1 2014/03/03 01:34:40 0.0 0.0 0.0";
static String c = "3 2 2014/03/03 01:34:41 0.0 0.0 0.0";
static String[] d;
String e;
public static void main(String[] args) {

Queue<String> s = new LinkedList<String>();
s.add(a);
s.add(b);
s.add(c);
}

如您所见,列表中的每个条目都是一个包含 7 个元素的字符串。我想比较每个字符串中的这些条目。例如,a、b、c 中的第一个条目使用 s。

最佳答案

这里是我的评论的解释,“尝试为您的字符串创建一个自定义类并实现 Comparable 接口(interface)。然后您可以编写自己的 compareTo 方法。”

由于您有一个非常特殊的数据类型,您可以创建自己定义的类。以下 MyString 类封装了一个 String,实现了 Comparable 接口(interface),并提供了如何对此类类使用 compareTo 方法的示例.

public class MyString implements Comparable<MyString> {
private String data;

public MyString(String data) {
this.data = data;
}

public int compareTo(MyString other) {
String[] thisArray = new String[6];
String[] otherArray = new String[6];
thisArray = this.data.split(" ");
otherArray = other.data.split(" ");

// Compare each pair of values in an order of your choice
// Here I am only comparing the first two number values
if (!thisArray[0].equals(otherArray[0])) {
return thisArray[0].compareTo(otherArray[0]);
} else if (!thisArray[1].equals(otherArray[1])){
return thisArray[1].compareTo(otherArray[1]);
} else {
return 0;
}
}
}

compareTo 方法返回 1、0 或 -1,具体取决于值 A 是否分别大于、等于或小于值 B。同样,这只是一个示例,我是仅比较字符串。以下是如何使用此方法比较两个格式化字符串的示例:

MyString a = new MyString("1 0 2014/03/03 01:34:39 0.0 0.0 0.0");
MyString b = new MyString("1 1 2014/03/03 01:34:40 0.0 0.0 0.0");
// Do something with the compared value, in this case -1
System.out.println(a.compareTo(b));

有关 ComparablecompareTo 的文档可以在 here 找到。 .

关于java - 比较链表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183776/

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