[Java in NetBeans] Lesson 15. Sorting and Searching.

这个课程的参考视频和图片来自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());

猜你喜欢

转载自www.cnblogs.com/Johnsonxiong/p/10147294.html
今日推荐