本题来自 Project Euler 第13题:https://projecteuler.net/problem=13 # Project Euler: Problem 13: Large sum # Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. # Answer: 5537376230 numbers = '''371072875339021027987979982
前言: 同事的业务场景是,按照cid.author分组,再按照id倒叙,取出前2条记录出来. oracle里面可以通过row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 表示根据cid,author分组,在分组内部根据id排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的),而mysql数据库就没有这样的统计函数,需要自己写复杂的sql来实现. 使用动态sql来实现 先构造序列号
2. 使用Collections.sort()方法 Collections类中提供了诸多静态方法,诸如addAll(),max()等等.当自己相对Collection接口下的类处理的时候,可以看看这个工具箱里有没有自己能直接使用的工具. import java.util.*; /** * Created By IntelliJ IDEA * User:LeeShuai * Date:3/6/14 * Time:5:22 PM */ public class CollectionsTest {
java实现对象比较,可以实现java.lang.Comparable或java.util.Comparator接口 //Product.java import java.util.Date; //public class Product implements Comparable {//类内比较 public class Product{ private String name; private Date date; private int price; public int getPrice
注:对象排序,就是对对象中的某一字段进行比较,以正序或倒序进行排序. 例: 需要排序的对象: public class Person { public int age; public String name; public Person (int age, String name){ this.age = age; this.name = name; }} 实现排序功能的类: import java.util.Comparator; public class OrderUtil imple