비교할 데이터가 있습니다. 다른 데이터 유형과 값을 비교해야 할 수도 있습니다. 기본적으로 발생하는 것은 다음과 같습니다.Java : 동일한 값을 가진 두 개의 다른 유형의 객체를 비교하여 true를 반환합니다.
Object a = (long) 1;
Object b = (int) 1;
System.out.println(Objects.equals(a, b)); //returns false
Sysout.out.println(Objects.equals(a.toString(), b.toString())); //returns true
.toString()을 사용하는 것이 가능한 솔루션처럼 보입니까? 아니면 다른 길로 가야합니까?
편집 :
이 프로그램은 HIVE의 일부 테이블이에 동일한 데이터가있을 수 있습니다 테이블,하지만 서로 다른 데이터 유형에서 읽고 있습니다. 데이터 유형에는 int, smallint, bigint, string, array, double, timestamp가 있습니다.
배열을 보유 할 수있는 배열 유형 외에는 아무것도 없기 때문에 배열 비교와 관련이 없습니다. 그러나 문자열 유형을 타임 스탬프와 비교할 수 있습니다. 나는 또한 비교 결과를 false로해야하기 때문에 int를 두 번 비교하는 것에 관심이 없다.
소수점이없고 다른 데이터 유형이있는 숫자 값은 값과 비교되어야하며 데이터 유형 불일치는 false를 반환하지 않아야합니다.
편집 :
소수에 어떤 수를 비교하기 전에 3 소수점으로 반올림됩니다.
정수/long 또는 float/double도 보유하고 있습니까? – BackSlash
예, 가능합니다. String 또는 ArrayList 유형 일 수도 있습니다. 그러나 이러한 경우에는 문자열 대 문자열 비교 또는 ArrayList 대 ArrayList 비교 일뿐입니다. – adbar
해당 정보를 바탕으로 질문이 너무 광범위합니다. 어쩌면 질문을 편집하고 당신이하고 싶은 것을 설명하고 문제를 해결하기 위해 어떤 방법을 고려해 볼 수 있습니까? 당신은 어떤 입력 데이터를 제공하고 그것으로 무엇을해야하는지, 그리고 당신이 어떻게 작업을 수행하려고 하는지를 설명 할 수 있습니다. – BackSlash