guava ordering示例

按guava官方教程寫的ordering,注意的是com.google.common.base.Function用這個Function,不能用其他庫的Function

import java.util.*;
import com.google.common.base.Function;
import org.elasticsearch.common.Nullable;
import com.google.common.collect.Ordering;

class Foo{
  @Nullable String sortedBy;
  int notSortedBy;
  
  public Foo(String p1, int p2) {
	  sortedBy = p1;
	  notSortedBy = p2;
  }
}

public class test {
	public static void main(String[] args) {
		Function<Foo, String> t = new Function<Foo, String>() {
		@Override
		  public String apply(Foo foo) {
		    return foo.sortedBy;
		  }
		};
		Ordering<Foo> ordering = Ordering.natural().nullsFirst().onResultOf(t);		
		
		List<Foo> foos = new ArrayList<>(3);
		foos.add(new Foo("h1", 1));
		foos.add(new Foo("h3", 3));
		foos.add(new Foo("h2", 2));
		for(Foo a : ordering.sortedCopy(foos)) {
			System.out.println(a.sortedBy + a.notSortedBy);
		}
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章