[Java in NetBeans] Lesson 15. Sorting and Searching.
阿新 • • 發佈:2019-01-01
這個課程的參考視訊和圖片來自youtube。
主要學到的知識點有:
Build in functions in java.util.Collections
- Need to implement a comparator - a special class which returns an integer comparision of two object, if compare(a,b), if return negative number, a will be before b, otherwise a will be after b. (Just need to override the compare() function)
1. Sorting: arrange a collection in order Collections.sort(List<T> list, Comparator<>)
It is used like below:
ArrayList<integer> numbers = new ArrayList<>(); for (int i =0; i< 20; i++){ numbers.add(generator.nextInt(100) + 1); // get a random number from 1 to 100} Collections.sort(numbers, new IntegerComparator())
Then we create a comparator, defined in another java class called IntegerComparator
public class IntegerComparator implements Comparator<integer>{
@Override public int compare(Integer a, Integer b){ return a-b; } }
If sometimes we need to compare two objects of a customed class.
- Here assume that we have a class called Student, it contains GPA and name of the student. Then we will implement the class of StudentGpaComparator.
import java.util.Comparator; public class StudentGpaComparator implements Comparator<Student>{ @Override public int compare(Student s1, Student s2){ double gpa1 = s1.getGpa(); double gpa2 = s2.getGpa(); return (int) ((gpa1 - gpa2)*100) } }
2. Search: find a specific value in a collections Collections.binarySearch(List<T> list, T key, Comparator<>)
It is used like below: (will return -1 if not found)
Collections.binarySearch(numbers, 50, new IntegerComparator());