小编ame*_*eed的帖子

如何使用Comparator接口

我是java的新手,我真的不知道如何使用比较器接口.我有一个ArrayListItem以S Inventory类和Item类.在Item我写的课上:

public class Item implements Comparator<Item> {
    //stuff
    ...
    @Override
    public int compare(Item a, Item b) {
        if (a.getID().compareToIgnoreCase(b.getID())>0)
            return 1;
        else if (a.getID().compareToIgnoreCase(b.getID())<0)
            return -1;
        else
            return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

getID()方法只提供id,我必须使用它来按字母顺序排列项目.我不确定这是不对的,它让我把@Override注释,我不知道为什么.我还写了一个界面,只是说:

 public interface Comparator<Item>
{
    int compare(Item a, Item b);
}
Run Code Online (Sandbox Code Playgroud)

我不确定那一点.另外,我如何实现此方法来对库存类中创建的arraylist进行排序?

谢谢,如果我的问题没有意义或需要澄清,请告诉我.

java sorting interface comparator

12
推荐指数
2
解决办法
5万
查看次数

ptrace 能否判断 x86 系统调用使用的是 64 位还是 32 位 ABI?

我正在尝试使用 ptrace 来跟踪由单独进程发出的所有系统调用,无论是 32 位 (IA-32) 还是 64 位 (x86-64)。我的跟踪器将在启用 IA-32 仿真的 64 位 x86 安装上运行,但理想情况下能够跟踪 64 位和 32 位应用程序,包括 64 位应用程序是否分叉并执行 32 位进程.

问题是,由于 32 位和 64 位系统调用号不同,我需要知道进程是 32 位还是 64 位以确定它使用哪个系统调用,即使我有系统调用号。似乎有不完美的方法,例如检查/proc/<pid>/exec或(如 strace 那样)寄存器结构的大小,但没有什么可靠的。

更复杂的是,64 位进程可以从长模式切换到直接执行 32 位代码。他们还可以进行 32 位int $0x80系统调用,当然,使用 32 位系统调用号。我不“相信”我跟踪的进程不会使用这些技巧,所以我想正确检测它们。而且我已经独立验证,至少在后一种情况下,ptrace 看到的是 32 位系统调用号和参数寄存器分配,而不是 64 位的。

我在内核源代码中找到了 中的TS_COMPAT标志arch/x86/include/asm/processor.h,每当 64 位进程进行 32 位系统调用时,该标志似乎都会设置。唯一的问题是我不知道如何从用户空间访问这个标志,或者是否有可能。

我还考虑过阅读%cs并将其与$0x23or进行比较$0x33,受到这种在运行过程中切换位数的 …

linux x86 ptrace x86-64 system-calls

7
推荐指数
1
解决办法
845
查看次数

使用Javascript比较HTML中的两个输入数字?

我正在使用Notepad ++创建一个简单的网页,用户在其中将两个数字输入到文本框中,然后按一个按钮。当他们按下按钮时,会出现提示他们第一个或第二个数字更大的信息。我有以下代码,但无法解决任何问题。有人知道怎么了吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
   <title>Assignment 10 Form</title>

    <script type="text/javascript">

        function greaterNum(){
        var value1;
        var value2;
        value1 = document.First_num.value;
        value2 = document.last_num.value;
        if (value1 > value2){
        alert('Value 1 is greater than value 2');
        document.body.style.background = "orange";
        }

    }


</script> 


<style type="text/css">
  body{background-color: #40FF00;
    margin-left: auto;
    margin-right: auto;
    width: 60%;
    }

#container{
    border: 2px solid yellow;
    padding: 20px;
    }

</style>

</head>

<body>
<h1>Assignment 10</h1>

<div id="container">
    <div …
Run Code Online (Sandbox Code Playgroud)

html javascript if-statement

2
推荐指数
1
解决办法
1万
查看次数