手记

一个没有解决的问题

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

// 排序
public class CollectionsTest {

    public void testSort1() {
        List<Integer> integerList = new ArrayList<Integer>();
        Random random = new Random();
        Integer k;
        for (int i = 0; i < 10; i++)
        {
            do
            {
                k = random.nextInt(100);
            } while (integerList.contains(k));
            integerList.add(k);
            System.out.println("成功添加整数" + k);

        }
        System.out.println("-------排序前------------");
        for (Integer integer : integerList)
        {
            System.out.println("元素" + integer);
        }

        Collections.sort(integerList);
        System.out.println("----------排序后--------------");
        for (Integer integer : integerList)
        {
            System.out.println("元素" + integer);
        }

    }

    public void testSort2() {
        List<String> stringList = new ArrayList<String>();
        stringList.add("microsoft");
        stringList.add("google");
        stringList.add("lenovo");
        System.out.println("----排序前------");
        for (String string : stringList)
        {
            System.out.println("元素" + string);
        }

        Collections.sort(stringList);
        System.out.println("-----排序后-------");
        for (String string : stringList)
        {
            System.out.println("元素" + string);

        }
    }

    public void testSort3() {
        List stringList2 = new ArrayList();
        Random random2 = new Random();
        char b = 1;
        char a = 1;
        String str;
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 10; i++)
        {
            do
            {
                for (int j = 0; j <= 5; j++)
                {
                    b = (char) (random2.nextInt(26) + 65);
                    a = (char) (random2.nextInt(26) + 97);
                    sb.insert(0, a);
                    sb.insert(0, b);
                }
            } while (stringList2.contains(sb));
            stringList2.add(sb);
            System.out.println("成功添加字符串" + sb);
        }
    }

    public static void main(String[] args) {
        CollectionsTest ct = new CollectionsTest();
        // ct.testSort1();
        // ct.testSort2();
        ct.testSort3();

    }
}


这是一个在看Collections.sort,留下的课后作业,首先第一个想法是每一行都是一个String,后来发现不对,因为要不停的添加大写或者小写或者数字,所以要使用StringBuffer来进行添加,问题就是,在视频上看到的添加的结果明显是无序的,如果在添加StringBuffer的时候下标为一个随机数才行(原文使用0),我测试直接在参数中传入sb.insert(random2.nextInt(10), a);但是报错,后来使用int sp1 = random2.nextInt(10) ;sb.insert(sp1, a);,依旧无法传入。

(如果有人想测试,请注意死循环)

0人推荐
随时随地看视频
慕课网APP