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);,依旧无法传入。
(如果有人想测试,请注意死循环)