问题是该方法不确定a和b是否可比较,因此编译器会抛出一个找不到的符号进行比较。
public class Merge {
public ArrayList<Object> sorted(Object[] a, Object[] b) {
int i, j, k;
i = j = k = 0;
ArrayList<Object> c = new ArrayList<>();
while (i < a.length || j < b.length) {
if (i == a.length) {
for (j = j; j < b.length; j++) {
c.add(k, b[j]);
k++;
}
break;
}
else if (j == b.length) {
for (i = i; i < a.length; i++) {
c.add(k, a[i]);
k++;
}
break;
}
else {
if ( a[i].equals(b[j]) || a[i].compareTo(b[j]) < 0 ) {
c.add(k, a[i]);
i++;
k++;
}
else {
c.add(k, b[j]);
j++;
k++;
}
}
}
return c;
}
}
该代码在与Integer一起使用时有效。我希望能够使用例如,sorted(a,b)
beinga=Person[]
和b=Person[]
。当然,在人的内部,方法是比较和平等的。
我应该在这个类中用ObjectType实现和扩展comparable并重写compareTo吗?
要在对象上调用comareTo()
,类必须实现可比较的
接口并覆盖comareTo()
方法。由于Object
类不实现可比较的
,上述代码将始终给你编译错误。
如果只想传递Person对象,则需要将签名更改为接受Person[]
数组。否则,您需要重写toString()方法(使用有意义的实现)并更改a[i]。将(b[j])
与a[i]进行比较。toString()。比较(b[j].toString())
。
我建议你把签名改成
public static <T extends Comparable<T>> List<T> sorted(T[] a, T[] b)
你可以比较a[i]。比较(b[i])
并返回相应类型的列表。
我正在做一个应用程序,我想注册一个新的广播接收器。但是,当意图被触发时,应用程序无法找到接收器类,并以以下错误失败: System.err:无法实例化接收器org.nativescript.ntngcallerid.phoneCallReceiver:java.lang.ClassNotFoundException:在路径:dexpathList[[zip文件“/data/app/org.nati
当我试图使用MongoDB Sink应用程序starter时,我遇到了这个问题,其中包含由JDBC源代码读取的信息: Class!意味着这是一个。我打印在一个日志中,这是对象的JSON。这是一个bug吗?其他接收器工作得很好。
我已经在互联网上搜索了一两个星期,想找到一个UDP客户端程序,它可以同时发送和接收数据,但是对于c#来说,没有关于这个主题的内容。在过去的几天里,我尝试创建一个UDP客户端,其中包含一个接收数据的线程。 发送UDP数据包效果很好,但程序无法接收我发送到的服务器,我相信服务器正在将所有数据包发送到不同的端口。 我如何修复这个程序? 有没有一种更简单的方法来进行UDP编程,比如用于TCP的Stream
我正在学习GCM(谷歌云消息传递,旧的不建议使用的名称是C2DM)。我使用不同的设备。操作运行良好,即使应用程序关闭。但是在nexus平板电脑上,当应用程序关闭时会发生错误。如果应用程序正在进行,我的GCM代码在我尝试的所有设备上都能工作。现在:我寻找这些问题,我发现有其他的错误清单。如果我的清单是错误的,为什么除了nexus平板电脑以外的其他设备都正确执行我的代码?我可以认为我的清单是错误的吗?
问题内容: 我有一个大型的maven项目,该项目使用pmd插件进行代码质量检查。 自从我开始使用Pmd插件以来,我收到以下警告消息: 我用谷歌搜索,发现我需要实现jxr插件。 所以我将以下内容添加到主pom.xml文件的build属性中。 哭泣并没有真正改变任何东西。 为了解决此警告消息,我需要实现什么想法? 输出 谢谢! 问题答案: 您应将添加到 部分。 重新运行并享受。 顺便说一句,也许您需要
我有一个Angular 4和Java/Spring MVC/Jhipster网站,我正试图使用本教程创建一个websocket(使用sock js和stomp.js)。我可以连接到websocket,但是当我尝试从Java代码向客户端发送数据时,什么也没有发生。请帮帮我。 下面,我只是试图访问我的浏览器中的http://localhost:9001/api/websocket/testSend,并