아옳옳의 코딩공부/아옳옳 자바코딩공부
2021-04-08 자바공부 (StringTokenizer클래스 , Arrays 클래스 )
아옳옳
2021. 4. 8. 09:11
728x90
반응형
StringTokenizer
구분자로해서 부분 문자열 분리 시킨다.
실습 코드
Arrays 클래스
배열 복사 메소드
메소드 호출 예시
배열의 내용 비교
오름차순 정렬 ( 내림차순은 안된다 )
하지만 숫자라면 명확하지만 예를 들어 사람을 정렬 한다고 생각하면 키 큰순서 or 몸무게 순서 등과 같이 기준이 모호 하다
그래서 그 기준을 주는것이 아래이다.
위에서는 정석으로 사용하는 방법이였다면 아래 코드에서는 간략화해서 사용하였다 . 잘 참고 하자
아래 코드를 보면 이해가 쉬울것이다.
///////////////펄슨
public class Person implements Comparable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return this.name + " : " + age;
}
@Override
public int compareTo(Object o) {
Person p = (Person)o;
return this.name.length()-p.name.length();
}
}
///////////////메인
public class Arrays_Ex {
public static void main(String[] args) {
Person[] ar = new Person[3];
ar[0] = new Person("아옳이" , 29);
ar[1] = new Person("아옳" , 30);
ar[2] = new Person("멀록왕아옳옳" , 45);
Arrays.sort(ar);
for(Person p :ar)
System.out.println(p);
}
}
출력결과
아옳 : 30
아옳이 : 29
멀록왕아옳옳 : 45
compareTo 부분보면 음수 or 양수 or 0 이걸로 판단하기 때문에 알아서 정렬 되기 때문에 저렇게 간략화함
배열의 탐색
아까는 배열의 정렬이였다면 이번엔 배열에서 내가 원하는 값을 찾아오는 메소드 binarySearch
실습 코드
실습에서는 숫자가 아닌 이름으로 찾아오는 방법으로 해보도록 하겠다 .
/////////////////////메인
public class Arrays_Ex {
public static void main(String[] args) {
Person[] ar = new Person[3];
ar[0] = new Person("아옳이" , 29);
ar[1] = new Person("아옳" , 30);
ar[2] = new Person("멀록왕아옳옳" , 45);
Arrays.sort(ar);
int index = Arrays.binarySearch(ar, new Person("멀록왕아옳옳" ,60 ));
System.out.println(ar[index]);
}
}
//////////////////펄슨클래스
public class Person implements Comparable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return this.name + " : " + age;
}
@Override
public int compareTo(Object o) {
Person p = (Person)o;
return this.name.compareTo(p.name);
}
}
나는 멀록왕아옳옳을 찾기위해 멀록왕아옳옳이와 이름이 똑같은 객체를 보내주고 그 객채와 이름 이 같은 객체를 찾아 인덱스 번호를 넘겨주고 찍어보면 똑같은 멀록왕아옳옳이 찍히는걸 볼수 있다.
결과값
멀록왕아옳옳 : 45
오늘 제네릭초반까지는 들어 갓는데 내일 한번에 정리 하자~
728x90
반응형