2015-03-09 8 views
6

मैं जावा के लिए बहुत नया हूं और मैं जानना चाहता हूं कि मैं 2 पूर्णांक की तुलना कैसे कर सकता हूं? मुझे पता है == काम पूरा हो जाता है .. लेकिन बराबर के बारे में क्या? क्या यह 2 पूर्णांक की तुलना कर सकता है? (जब मैं पूर्णांक कहता हूं तो मेरा मतलब है "int" नहीं "इंटीजर")। मेरे कोड है:जावा बराबर या == के साथ 2 पूर्णांक की तुलना करें?

import java.lang.*; 
import java.util.Scanner; 
//i read 2 integers the first_int and second_int 
//Code above 
if(first_int.equals(second_int)){ 
//do smth 
} 
//Other Code 

लेकिन किसी कारण .. यह काम नहीं करता के लिए मैं Netbeans मुझे एक त्रुटि देता है मतलब: क्यों "पूर्णांक dereferenced नहीं किया जा सकता?"

+4

'int' एक आदिम (विशेष) प्रकार, यह एक वस्तु नहीं है। आप primitives – MadProgrammer

+0

की तुलना करने के लिए '==' का उपयोग कर सकते हैं तो बराबर क्यों मौजूद है? केवल तारों के लिए? – Konstantinos

+4

नहीं, 'बराबर' किसी भी दो ऑब्जेक्ट की समानता की तुलना करने के लिए मौजूद है (जहां 'बराबर' परिभाषित किया गया है)। '==' स्मृति पता/संदर्भ जानकारी की तुलना करता है। किसी ऑब्जेक्ट के दो उदाहरणों को बराबर माना जा सकता है क्योंकि सामग्री बराबर होती है, लेकिन उनकी स्मृति संदर्भ – MadProgrammer

उत्तर

10

int एक आदिम है। आप की तरह

Integer first_int = 1; 
Integer second_int = 1; 
if(first_int.equals(second_int)){ // <-- Integer is a wrapper. 

आवरण Integer उपयोग कर सकते हैं या आप

int first_int = 1; 
int second_int = 1; 
if(first_int == second_int){ // <-- int is a primitive. 

JLS-4.1. The Kinds of Types and Values की तरह मान द्वारा की तुलना कर सकते (क्योंकि यह एक आदिम प्रकार है) का कहना है (भाग में)

There are two kinds of types in the Java programming language: primitive types (§4.2) and reference types (§4.3). There are, correspondingly, two kinds of data values that can be stored in variables, passed as arguments, returned by methods, and operated on: primitive values (§4.2) and reference values (§4.3).

+0

अधिक जानकारीपूर्ण नहीं हैं! बहुत बहुत धन्यवाद! – Konstantinos

2

हैं आप

1-two integer 
If(5==5) 
2- char 
If('m'=='M') 
3 string 
String word="word" 
word.equals("word") 
के बीच तुलना करना चाहते हैं
1

जैसा कि int प्राचीन है आप बराबर का उपयोग नहीं कर सकते हैं। क्या आप आवरण के रूप में कर सकते हैं उपयोग interger

void IntEquals(Integer original, Integer reverse) { 
     Integer origianlNumber = original; 
     Integer reverseNumber = reverse; 

     if (origianlNumber.equals(reverse)) { 
      System.out.println("Equals "); 
     } else { 
      System.out.println("Not Equal"); 
     } 
संबंधित मुद्दे