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