java 参数列表_java-根据另一个类中可用的参数对列表进行...

您可以使用闻起来像高阶函数的东西.也就是说,创建一个静态函数,该函数采用从Long到int(这是优先级)或数据的排序映射,并返回一个新的Comparator.

Foo类具有一个采用Orange的静态方法getComparator. Orange是具有方法getPriority的类,该方法获取ID并返回相应的优先级. getComparator方法构造一个新的Comparator对象.新的Comparator对象的compare方法带有两个ID.它查找两个ID的相应优先级并进行比较.

public interface Orange {

// Looks up id and returns the corresponding Priority.

public int getPriority(Long id);

}

public class Foo {

public static Comparator getComparator(final Orange orange) {

return new Comparator() {

public int compare(Long id1, Long id2) {

// Get priority through orange, or

// Make orange juice from our orange.

// You may want to compare them in a different way.

return orange.getPriority(id1) - orange.getPriority(id2);

};

}

}

我的Java有点生锈,因此代码可能有缺陷.不过,总体思路应该可行.

用法:

// This is defined somewhere. It could be a local variable or an instance

// field or whatever. There's no exception (except is has to be in scope).

Collection c = ...;

...

Orange orange = new Orange() {

public int getPriority(Long id) {

// Insert code that searches c.mySet for an instance of data

// with the desired ID and return its Priority

}

};

Collections.sort(c.myList, Foo.getComparator(orange));

我没有举一个橘子看起来的例子.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值