sách gpt4 ai đã đi

java - Danh sách<><对象>> Sắp xếp

In lại 作者:太空宇宙 更新时间:2023-11-04 12:38:47 30 4
mua khóa gpt4 Nike

我在排序时遇到问题 List<>> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。

 public class CustomComparator implements Comparator<>> 
{
static int i = 0;
public int compare(List o1, List o2) {
if (i < o1.size()) {
System.out.println(i);
Object obj1 = o1.get(i);
Object obj2 = o2.get(i);
if (obj1 != null && obj2 != null) {
int value = compareTo(obj1.toString(), obj2.toString());
if (value == 0) {
i++;
compare(o1, o2);
}
return value;
}
if (obj1 == null && obj2 != null) {
return -1;
}
if (obj1 != null && obj2 == null) {
return 1;
}
if (obj1 == null && obj2 == null) {
i++;
compare(o1, o2);
}
}
else{
i=0;
}
trả về 0;
}

public int compareTo(String value1, String value2) {
return value1.compareTo(value2);
}
}

我试图实现的逻辑是,首先它将尝试使用第 0 个位置的对象进行排序。如果第 0 个位置的值相等或为 null,则它将使用第 2 个位置的对象进行排序等。如果其中一个值为空,则该元素将向下移动。但是,当我尝试使用我编写的代码进行排序时,它会进行排序,但既不是升序也不是降序。它只是被洗牌了。

1 Câu trả lời

这里使用递归是没有意义的。只需在循环中迭代两个 Danh sách 即可比较它们的元素。

您的递归实现不起作用,因为您忽略了递归调用返回的值。使用静态变量来保存索引也是一个坏主意。如果您的 Comparator 实例同时被两个线程使用,会发生什么?

关于java - 列表<><对象>>排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043378/

30 4 0
Bài viết được đề xuất: c++ - 在滚动区域内定位可调整大小的小部件
Bài viết được đề xuất: html - 在以下情况下找不到 css 字体大小更改触发器?
Bài viết được đề xuất: html - 带有文本和图像的水平菜单
Bài viết được đề xuất: java - 从 Jasperstudio 触发 Java
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com