package com.project;
import java.util.List;
import java.util.Random;
import java.util.ArrayList;
import java.util.Collections;
public class Imath {
Integer k;
public void testSort(){
List<String> stringlist=new ArrayList<String>();
Random random=new Random();
for(int i=0;i<10;i++){
do{
k=random.nextInt(10);
}while(stringlist.contains(k));
String b=String.valueOf(k);
stringlist.add(b);
}
System.out.println("~~~~~~~~~~排序前~~~~~~~");
for(String str:stringlist){
System.out.println("元素:"+str);
}
Collections.sort(stringlist);
System.out.println("~~~~~~~~~~排序后~~~~~~~");
for(String str:stringlist){
System.out.println("元素:"+str);
}
}
public static void main(String[] args) {
Imath math=new Imath();
math.testSort();
}
}
判断重复可以换成 stringlist.contains(k+"");
contains比较的是equals的返回值
List<String> list = new ArrayList<String>(); list.add("1"); System.out.println(list.contains("1"));//true System.out.println(list.contains(1));//false
这个你未必能理解,但是简单说一下,有可能越解释越糊涂
比如list.contains(1)
contains方法会把 1变成new Integer(1);//对象型
Integer i = new Integer(1);
然后判断对象的equals,
i.equas("1");//false
while(stringlist.contains(k+"")); // while(stringlist.contains(k)); 这行有问题
要是直接把错误点出来就太没意思了