java中Integer比较需要注意的问题

java中Integer比较需要注意的问题

package com.srie.test;

import java.util.HashMap;
import java.util.Map;

public class Test003 {
    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("i1", new Integer(1));
        map.put("i2", new Integer(1));
        Integer i1 = new Integer(1);
        Integer i2 = new Integer(1);
        Integer i3 = new Integer(2);
        System.out.println(i1.compareTo(i2));
        if(i3>=i1){
            System.out.println("i3>i1");
        }else{
            System.out.println("i3<=i1");
        }
        if (i1 == i2) {
            System.out.println("i1==i2");
        } else {
            System.out.println("i1!=i2");
        }
        Integer i1O = (Integer) map.get("i1");
        Integer i2O = (Integer) map.get("i2");
        if (i1O == i2O) {
            System.out.println("i1O==i2O");
        } else {
            System.out.println("i1O!=i2O");
        }
        
    }
}

使用List进行是否包含的判断情况:

public class Test006 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        
        Integer i1 = new Integer(1);
        Integer i2 = new Integer(1);
        System.out.println(i1==i2); // false
        System.out.println(list.contains(i1)); // true
        System.out.println(list.contains(i2)); // true
    }
}
原文地址:https://www.cnblogs.com/stono/p/5086400.html