import java.util.ArrayList;
import java.util.List;public class RadomArrarOut { /**
* @param args
* @return
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
Object[] intTest = { "1", "2", "3", "4", "5" };
List list = new ArrayList();
for (int i = 0; i < intTest.length; i++) {
list.add(i, intTest[i]);
} for (int i = 0; i < intTest.length; i++) {
double random = Math.random();
int temp = (int) (random * (intTest.length - i));
System.out.println(list.get(temp));
list.remove(temp); }
}
}其中int temp = (int) (random * (intTest.length - i));为什么会便利到list中所有的值,请高手解释一下;
import java.util.List;public class RadomArrarOut { /**
* @param args
* @return
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
Object[] intTest = { "1", "2", "3", "4", "5" };
List list = new ArrayList();
for (int i = 0; i < intTest.length; i++) {
list.add(i, intTest[i]);
} for (int i = 0; i < intTest.length; i++) {
double random = Math.random();
int temp = (int) (random * (intTest.length - i));
System.out.println(list.get(temp));
list.remove(temp); }
}
}其中int temp = (int) (random * (intTest.length - i));为什么会便利到list中所有的值,请高手解释一下;
这样每次打印一个就把它从list里面移除掉了,再从剩下的取,当然不会重复了