Language/Java

컬렉션의 정리 , A와a의 순서 비교법 기본

원2 2021. 3. 31. 11:28
728x90
반응형

import java.util.Comparator;

class BookOne implements Comparator {
	private String name;
	private String autho;
	private String pub;
	
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}  // private 이기 때문에 get set을 호출. name만 생성했기 때문에 name만 출력된다.

	
	BookOne (String name, String autho, String pub) {
		this. name = name;
		this. autho = autho;
		this. pub = pub;
	}
	
	@Override
	public int compare(Object o1, Object o2) { // 추상클래스가 안되기 위해서 cpmpare을 오버라이드한다.
		if (o1 instanceof BookOne && o2 instanceof BookOne) { // 여기에 전제는 BookOne이 되야한다.
			BookOne aBookOne1 = (BookOne)o1;
			BookOne aBookOne2 = (BookOne)o2;
			
			int Temp = aBookOne1.name.charAt(0) - aBookOne2.name.charAt(0);
			return Temp;
		}
		return 0;
	}
}

public class Test001 {

	public static void main(String[] args) {
		BookOne[] aBookOne = new BookOne[] {
				new BookOne ("호밀밭의 파수꾼", "홍길동", "스프링 1차"),
				new BookOne ("밀밭의 파수꾼", "홍길", "스프링 2차"),
				new BookOne ("호밭의 파수꾼", "홍동", "스프링 3차") 
			};
		for (BookOne Temp : aBookOne) {
			System.out.println(Temp.getName()); 
			
		}
	}
	
	
	
	public static void main1(String[] args) {
		String aString1 = "Apple";	// A 의 아스키 코드가 a의 아스키 코드보다 작다.
		String aString2 = "Apple";  // 문자열의 비교 값이 같을 때.
		
		String aString3 = "apple";	// A 의 아스키 코드가 a의 아스키 코드보다 작다.
		String aString4 = "Apple";	// 문자열의 비교 값이 양수일 때.
		
		String aString5 = "Apple";	// A 의 아스키 코드가 a의 아스키 코드보다 작다.
		String aString6 = "apple";	// 문자열의 비교 값이 음수일 때.

		int iRetsult = aString1.compareTo(aString2); // String 내부에compareTo가 상속되어있음
		System.out.println(iRetsult);
		
		iRetsult = aString3.compareTo(aString4); 	// String 내부에compareTo가 상속되어있음
		System.out.println(iRetsult);
		
		iRetsult = aString5.compareTo(aString6); 	// String 내부에compareTo가 상속되어있음
		System.out.println(iRetsult);
	}
	// a 문자열과 b 문자열을 비교할 때 첫번째자리에서 비교 , a열의 첫 글자 - b 열의 첫 글자 = ?
	// if 첫글자가 같다면 두번째 자리를 비교, 같다? 세번째 ....이런식.

}
728x90
반응형