-
java/자바 equals 사용하여 동등성 비교java공부 2021. 8. 15. 13:45반응형
equals는 동등성을 비교한다.
즉,
String[] s = new String[1]; s[0] = "hi"; System.out.println(s.equals("hi"); // true
이런식으로 나올 것이다.
하지만 true라고 주소값이 같은 것은 아니다.
대신 HashCode는 같다.
String s = "hi"; String s2 = "hi"; String s3 = new String("hi"); System.out.println(s == s2); // true System.out.println(s == s3); // false System.out.println(s.equals(s3)); // true // hash값 동일 System.out.println(s.hashCode() == s3.hashCode()); // true
객체 배열을 비교하면
public void test1() { // Set을 이용해서 Hi객체를 출력 Set<Hi> hi = new HashSet<>(); // Hi객체에 ("hi", 10)을 입력 hi.add(new Hi("hi", 10)); // Iterator를 이용해서 출력 Iterator<Hi> iter = hi.iterator(); while(iter.hasNext()) { // hi를 String s에 받음 String s = iter.next().getHello(); // equals를 통해 비교 System.out.println(s.equals("hi")); // true } }
이런식으로 나올 것이다.
equals를 이용한 프로그램 종료 상황을 만들자면
public void test1() { Scanner sc = new Scanner(System.in); String[] s = new String[1]; while(true) { System.out.print("insert hi : "); s[0] = sc.next(); // exit를 입력하면 종료하도록 if(s[0].equals("exit")) { System.out.println("종료"); return; } }
이런식으로 사용 할 수 있다.
만약 if문에서 equals대신에 ==을 이용한 비교를 한다면
영원히 반복문을 빠져나오지 못 할 것이다.
'java공부' 카테고리의 다른 글
java eclipse에서 gson을 이용한 json으로 회원관리 (0) 2021.09.11 java/자바 Collection Stack구조(후입선출), Queue구조(선입선출) (0) 2021.08.15 자바/java try{} catch(){}와 Exception을 활용한 반복문 작성 (0) 2021.08.08 자바/java Math.abs(); 절대 값 활용(다이아 만들기) (0) 2021.07.25 자바/java method 이용과 활용 (0) 2021.07.25