Scanner scanner = new Scanner(System.in);
創(chuàng)新互聯(lián)公司專注于龍馬潭網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供龍馬潭營銷型網(wǎng)站建設(shè),龍馬潭網(wǎng)站制作、龍馬潭網(wǎng)頁設(shè)計、龍馬潭網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造龍馬潭網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍馬潭網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
System.out.print("輸入字符串:");
String str = scanner.nextLine();
ListMap mapList = new ArrayList();
int length = str.length();
for(int i = 0;i length;i++){
int x = (int)(Math.random()*length);
Map map = new HashMap();
map.put("sort",x);
map.put("value",str.charAt(i));
mapList.add(map);
}
System.out.print("輸出隨機(jī)變換后的結(jié)果:");
mapList.stream()
.sorted(Comparator.comparing(o - o.get("sort").toString()))
.forEach(x- System.out.print(x.get("value").toString()));
System.out.println();
public?class?Main?{
/**
?*?比如這樣的數(shù)組{"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",?"A"
?*?}
?*?
?*?只用math.random不能導(dǎo)入別的包或者用list?不是實(shí)際打亂數(shù)組里面的元素順序,是“打印”出全部13個元素,要求隨機(jī)順序,?不按照
?*?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",
?*?"A"這個順序打印出來就好
?*?
?*?麻煩貼一下代碼?一段就好
?*?
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
String[]?cards?=?{?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",
"Q",?"K",?"A"?};
String[]?cards_put?=?new?String[13];
boolean?falg?=?true;
int?count?=?0;
for?(int?i?=?0;?i??cards.length;?i++)?{
if?(cards.length?-?i?-?1?==?0)?{//最后一張牌???無需隨機(jī)?
System.out.println(cards[0]);//輸出最后一張牌
}?else?{//不是最后一張牌??還需隨機(jī)選擇
int?index?=?(int)?(Math.random()?*?100)
%?(cards.length?-?i?-?1);
System.out.println(cards[index]?+?"?index=="?+?index);//輸出隨機(jī)選到的牌
for?(int?j?=?index;?j??cards.length?-?(i?+?1);?j++)?{//數(shù)組出掉的牌?放到后面??不再操作
cards[j]?=?cards[j?+?1];
}
}
}
}
}
數(shù)組去重有兩個選擇:
一、編寫判斷語句
如果沒有,添入數(shù)組,如果有,不添入數(shù)組。
System.out.println("How many numbers? ");
Scanner key = new Scanner(System.in);
int n = key.nextInt();
int[] all = new int[n];
int allNum=0;
boolean flag;
for (int num = 0; num n; num++) {
flag=true;
int random = (int) (Math.random() * n);
System.out.print(random + " ");
//循環(huán)判斷元素與random是否重復(fù)
for (int mark = 0; mark all.length; mark++) {
if (random == all[mark]) {
flag=false;
}
}
//如果不重復(fù)添入數(shù)組里
if(flag){
all[allNum]=random;
allNum++;
}
}
System.out.println();
//如果有一個重復(fù)的數(shù)字,數(shù)組后面就會多一個0,現(xiàn)在要去除0
int[] allTrue=Arrays.copyOf(all, allNum);
//輸入 最后去重以后的數(shù)組
for (int num = 0; num allNum; num++) {
System.out.print(allTrue[num]+" ");
}
二、使用Set集合去重
//給你個思路:給要給隨機(jī)值,該隨機(jī)值在索引范圍內(nèi),然后從索引值里面取元素,在該元素對應(yīng)
//的位置,進(jìn)行二次隨機(jī)取其他元素,然后進(jìn)行交換,就可以了!
//還有更簡單的辦法,java早就想到了這一點(diǎn),在集合工具里面就提供該方法,其實(shí)他內(nèi)部也是
//這樣的思路,用隨機(jī)值進(jìn)行交換!
import?java.util.*;
public?class?ArrayListTest?{
public?static?void?main(String[]?args)?{
Integer[]?arr=new?Integer[10];
for?(int?i?=?0;?i??arr.length;?i++)?{
arr[i]=i+1;
}
System.out.println("\n原序:"+Arrays.toString(arr)+"\n");//原數(shù)組!
ListInteger?list=Arrays.asList(arr);//借用集合幫忙排序!
for(Integer?a:list)?{
Collections.shuffle(list);//隨機(jī)排序!
System.out.println("隨機(jī):"+Arrays.toString(arr));//排序后!
}
}
}
//數(shù)字或者數(shù)量,你可以隨意修改,二維數(shù)組也可以照用!
有很多排序算法可以選擇,譬如冒泡排序,插入排序,選擇排序等等??梢栽?維基百科里搜一下"排序算法",我就正在看這個。我給你貼個選擇排序的例子。
選擇排序算法的思路:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢
/*選擇排序(降序)*/
static void selectSort(int[] arr)
{
int n = arr.length;
int max;
for (int i=0; in-1; i++)
{
max= i;
for (int j=i+1; jn; j++)
{
if (arr[max]arr[j])
{
max = j;
}
}
if (max != i)
{
swap(arr, max, i);
}
}
}
static void swap(int[] arr, int i, int j)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
原因是你編譯使用的javac,把代碼編譯成版本61的class,而你的運(yùn)行環(huán)境java,是一個老版本,能執(zhí)行的上限是52版本。
解決方法有兩個:
1,安裝和JDK相同版本的Java運(yùn)行時(JRE),并正確設(shè)置PATH變量。驗(yàn)證方法是:
在黑窗口里分別輸入java -version和javac -version,兩個版本要一致,或者java的版本更高。
相關(guān)命令截圖如下:
2,編譯的時候指定運(yùn)行時的版本:使用--release參數(shù)指定版本。
例如,你通過 java -version查看到版本=8,那么就按如圖的命令編譯