FIF's 코딩팩토리

자바 기초 NCS교육과정(43)-컬렉션2 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(43)-컬렉션2

FIF 2019. 8. 2. 13:29
반응형

Ascending.java

//오름차순
public class Ascending implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
System.out.println((o1+"/"+o2+" ")+o1.compareTo(o2));
return o1.compareTo(o2);
}
}

 

 

 

Descending.java

public class Descending implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
}

 

Java187_Sort.java

public class Java187_Sort {
public static void main(String[] args) {
Integer[] arr = new Integer[] { 1, 3, 5, 2, 4 };
ArrayList<Integer> aList = new ArrayList<Integer>(Arrays.asList(arr));
// 오름차순
aList.sort(new Ascending());
System.out.println(aList);
// 내림차순
aList.sort(new Descending());
System.out.println(aList);
System.out.println("/////앞->뒤/////////////////////////");
ListIterator<Integer> ite = aList.listIterator();
while (ite.hasNext()) {
System.out.println(ite.next());
}
System.out.println("/////e뒤->앞///////////////////");
//next()를 통해서 커서를 이동시킨후 previous()을 사용할 수 있다
while(ite.hasPrevious()) {
System.out.println(ite.previous());
}
}
}

출력결과

 

 

Java188_Sort.java

public class Java188_Sort {
public static void main(String[] args) {
String a = "ABCqwer24";
String b = "ABC";
String d = "ABC";
String e = "ab";
System.out.println(b.compareTo(d));//0
//65 - 97=-32 A-a
System.out.println(d.compareTo(e));//-32
//97-65=32
System.out.println(e.compareTo(d));//+32
//앞에 문자들이 같고 길이가 다르면 길이를 비교한다.
System.out.println(a.compareTo(b));//6
System.out.println(b.compareTo(a));//6
}
}

출력결과

 

 

Person.java

public class Person implements Comparator<Person> {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//이름 오름차순, 나이 내림차순
@Override
public int compare(Person o1, Person o2) {
// 이름 오름차순 o1.name.compareTo(o2.name)
// 이름 내림차순 o2.name.compareTo(o1.name)
// 나이 오름차순 >1, < -1 ==0
// 나이 내림차순 >-1, < 1 ==0
/*if(!(o1.getName().equals(o2.getName()))) {
return o1.getName().compareTo(o2.getName());
}else if(o1.getAge()>o2.getAge()){
return -1;
}else if(o1.getAge()<o2.getAge()) {
return 1;
}else {
return 0;
}*/
if(!(o1.getName().equals(o2.getName()))) {
return o1.getName().compareTo(o2.getName());
}else {
return new Integer(o2.getAge()).compareTo(o1.getAge());
}
}
}

 

Java189_Sort.java

public class Java189_Sort {
public static void main(String[] args) {
ArrayList<Person> ts = new ArrayList<Person>();
ts.add(new Person("홍길동", 40));
ts.add(new Person("가비", 30));
ts.add(new Person("가비", 20));
ts.add(new Person("나비", 15));
ts.sort(new Person());
for(Person ps:ts)
System.out.printf("%s %d\n",ps.getName(),ps.getAge());
}
}

출력결과

반응형
Comments