為什么我會重復?
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();
}
}
2015-08-11
判斷重復可以換成 stringlist.contains(k+"");
contains比較的是equals的返回值
這個你未必能理解,但是簡單說一下,有可能越解釋越糊涂
比如list.contains(1)
contains方法會把 1變成new Integer(1);//對象型
Integer i =?new Integer(1);
然后判斷對象的equals,
i.equas("1");//false
2015-08-13
while(stringlist.contains(k+"")); //?while(stringlist.contains(k)); 這行有問題
要是直接把錯誤點出來就太沒意思了