形成逻辑的问题

时间:2015-09-04 13:36:45

标签: java arrays sorting logic

示例ex。 1:

第1步:原始样本i / p编号:
621
629
6201
6202
6200
623
622
6289
6274
6271
6270
628887
62870
625

第2步:排序no.s:这些应该类似于这组数字(在考虑我得到的预期结果的字符串集的基础上):

我的要求是基于字符串/而不是基于数学公式的排序。

所以对我来说,java Arraysort在这里工作正常以获得预期的输出。

字符串无效[] = {“621”,“629”,“6201”,“6202”,“6200”,“623”,“622”,“6289”,“6274”,“6271”,“6270”, “628887”, “62870”, “625”};
        Arrays.sort(无效);

排序i / p no.s:

6200
6201
6202
621
622
623
625
6270
6271
6274
62870
628887
6289
629

**第3步:这是我实际上长时间陷入困境的一步......

以下是我在步骤2中提到的数字列表的最终结果中所期望的输出数字集合**

计算基础不是基于数学计算方法,所以我需要在预期输出的基础上构建逻辑。

我需要考虑当前考虑的数字的前一个数字和下一个数字,并且需要在输出列表中添加预期数字。还需要考虑第“n”位的数字长度和数字,以找到下一个数字。

分析输出结果后可以得到想法。
预期o / p no.s:

0
1
2
3
4
5
60
61
6203
6204
6205
6206
6207
6208
6209
624
626
6272
6273
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
62871
62872
62873
62874
62875
62876
62877
62878
62879
62880
62881
62882
62883
62884
62885
62886
62887
628880
628881
628882
628883
628884
628885
628886
628888
628889
62889
63
64
65
66
67
68
69
7
8
9

这是我尝试获得第2步中提到的结果: 它工作正常..现在这个输出将作为STEP 3程序的输入,以获得前面提到的最终输出。

public static void main(String[] args) {

    // TODO Auto-generated method stub
    //System.out.println("Hello");

    String invalid[] = {"621","629","6201","6202","6200","623","622","6289","6274","6271","6270","628887","62870","625"};
    Arrays.sort(invalid);

    for(int i=0;i<invalid.length;i++) {
        System.out.println(invalid[i]);
    }

    SortInvalidLevels obj1 = new SortInvalidLevels();
}

2 个答案:

答案 0 :(得分:0)

你可以使用LinkedList。使用此类的方法iterator()返回的ListIterator,您可以访问上一个和下一个元素,并在进行交互时添加新元素。 请参阅ListIterator和LinkedList类。

答案 1 :(得分:0)

这是你想要达到的目标吗?

Integer[] numbers = {2, 6, 62, 6255, 63, 9, 1, 12};
Arrays.sort(numbers, new Comparator<Integer>() {
     @Override
     public int compare(Integer o1, Integer o2) {
         return Integer.toString(o1).compareTo(Integer.toString(o1));
     }
});

输出:

[1, 12, 2, 6, 62, 6255, 63, 9]

将来,请将您尝试过的代码与您的问题一起发布。