账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java求集合按照指定元素大小排序,大小一致则随机排序
    57
    0
    User.classpublic class User { private long priority; private String name; public long getPriority() { return priority; } public User setPriority(long priority) { this.priority = priority; return this; } public String getName() { return name; } public User setName(String name) { this.name = name; return this; }}待排序集合List<User> users = Stream.of(new User().setPriority(0).setName("user1"), new User().setPriority(0).setName("user2"), new User().setPriority(1).setName("user3"), new User().setPriority(2).setName("user4"), new User().setPriority(4).setName("user5"), new User().setPriority(0).setName("user6"), new User().setPriority(3).setName("user7")) .collect(Collectors.toList());目的求算法,将待排序数据按照指定元素priority从小到大排序,,priority大小一致希望一定要随机排序。感谢各位大佬!// 这种是按照priority从小到大排序,如何保证priority一致的情况下增加随机性呢List<User> collect = users.stream().sorted(Comparator.comparing(User::getPriority)).collect(Collectors.toList());
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Java中,你可以使用Collections.sort()方法的Comparator接口来指定排序的规则。如果你想要按照指定元素的大小进行排序,你可以先将元素转换为Comparable接口的实例,然后使用Comparator接口的compare()方法来比较元素的大小。如果元素的大小相等,你可以直接使用Collections.shuffle()方法来随机排序。

      以下是一个示例:

      ```java import java.util.*;

      public class Main { public static void main(String[] args) { List list = new ArrayList<>(); list.add(3); list.add(2); list.add(1);

          // 将元素转换为Comparable接口的实例
          for (int i : list) {
              list.add(i, i);
          }
      
          // 按照指定元素的大小进行排序
          Collections.sort(list, Comparator.comparingInt(i -> i));
      
          // 随机排序
          Collections.shuffle(list);
      
          // 打印排序后的列表
          for (int i : list) {
              System.out.println(i);
          }
      }
      

      } ```

      在这个示例中,我们首先将列表中的元素转换为Comparable接口的实例,然后使用Comparator.comparingInt()方法来指定按照元素的大小进行排序。接着,我们使用Collections.shuffle()方法来随机排序。最后,我们打印排序后的列表。

      注意,Collections.sort()方法默认按照元素的自然顺序进行排序,如果你想要按照自定义的规则进行排序,你需要提供一个Comparator对象。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部