如何在Java中比较两个整数

6

我希望能够使用 < > == 来比较两个列表中的元素。

使用 intValue() 是正确的方法吗?

List<Integer> a = new ArrayList<Integer>();
a.add(129);

List<Integer> b = new ArrayList<Integer>();
b.add(128);

if(a.get(0).intValue() > b.get(o).intValue()) {
   // something
}

甚至更好的是:a.get(1).compareTo(b.get(1)) == 0 - Luiggi Mendoza
1
如果我还需要使用 < >,你的意思是只需将其更改为 <0 和 >0 吗? - user3495562
@user3495562,compareTo方法通常输出一个整数(-1、0和1),您需要相应地修改if语句。 - user2880020
你能解释一下为什么 Java 已经有 int,还需要 Integer 吗? - user3495562
int是一种原始类型,打破了面向对象的逻辑,而Integer是一个纯Java类,可以被扩展并包含更多方法。 - user2137101
显示剩余3条评论
2个回答

9

您正在以正确的方式操作。

如评论所述,您也可以使用compareTo()equals()compareTo()的另一种选择,它不会在对象为空的情况下抛出NullPointerException。


2
您的方法是正确的,但需要做一个小修改。
1)
a.get(0).intValue() == b.get(0).intValue()

2)

a.get(0).equals(b.get(0))

您的代码存在问题,您需要使用get(0)而不是get(1)。请记住,在Java中始终从0开始

值也可以使用equals()或CompareTo方法进行比较。

import java.util.ArrayList;
import java.util.List;

public class TestClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Integer> a= new ArrayList<Integer>();
        a.add(128);

        List<Integer> b = new ArrayList<Integer>();
        b.add(128);

        if(a.get(0).intValue() == b.get(0).intValue()){
            System.out.println("success");
        }else{
            System.out.println("failure");
        }
        if(a.get(0).equals(b.get(0))){
            System.out.println("success");
        }else{
            System.out.println("failure");
        }

    }

}

也许可以使用编辑功能?或者评论功能?这并没有回答问题。 - martijnn2008
我已经在本地尝试了那段代码,使用get(0)不会理想地工作,为了进行比较需要先排序。你试过吗?@martijnn2008 - Sireesh Yarlagadda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接