Guava的TreeBasedTable自定义排序

Guava 的 TreeBasedTable 是一个以树形结构组织数据的表格实现。它提供了按行键和列键排序的功能,默认情况下,行键和列键都按照其自然顺序排序。但是,Guava 也提供了一种方式来自定义排序顺序。

要自定义 TreeBasedTable 的排序顺序,您需要在创建实例时提供自定义的 Comparator。这里有一个例子:

// 自定义行键排序器
Comparator<String> rowComparator = (o1, o2) -> {
    // 自定义排序逻辑
    return o1.length() - o2.length();
};

// 自定义列键排序器
Comparator<Integer> columnComparator = Comparator.reverseOrder();

// 创建自定义排序的 TreeBasedTable
TreeBasedTable<String, Integer, Double> table = TreeBasedTable.create(
    rowComparator,
    columnComparator
);

如果您只想自定义 Guava TreeBasedTable 的行键排序,而保留列键的默认自然顺序排序,可以这样做:

// 自定义行键排序器
Comparator<String> rowComparator = (o1, o2) -> {
    // 自定义排序逻辑
    return o1.length() - o2.length();
};

// 创建自定义排序的 TreeBasedTable,只提供行键排序器
TreeBasedTable<String, Integer, Double> table = TreeBasedTable.create(
    rowComparator,
    Ordering.natural() // 使用默认的自然顺序排列列键
);

有个注意点,如果columnKey相同,那么数据会被合并。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇