数组
【题目如下】
我国有四大淡水湖。
A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
C说:洪泽湖最小,洞庭湖第三。
D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
给四大湖排序:
package unit01;
import java.util.Arrays;
/*
* Date:2018/10/13
* Function:四大淡水湖排名算法
* @author:Heguoqing
* */
public class Class07 {
public static void main(String[] args) {
int D,P,H,T;//分别定义整型的洞庭湖,潘阳湖,洪泽湖,太湖
for(D=1;D<=4;D++){
for(P=1;P<=4;P++){
if(P==D) continue;
for(H=1;H<=4;H++){
if(H==P||H==D) continue;
for(T=1;T<=4;T++){
if(T==H||T==P||T==D) continue;
int b1=(D==1?1:0)+(H==4?1:0)+(P==3?1:0);
int b2=(H==1?1:0)+(D==4?1:0)+(P==2?1:0)+(T==3?1:0);
int b3=(H==4?1:0)+(D==3?1:0);
int b4=(P==1?1:0)+(T==4?1:0)+(H==2?1:0)+(D==3?1:0);
if(b1==1&&b2==1&&b3==1&&b4==1){
System.out.println(D+"洞庭湖");
System.out.println(H+"洪泽湖");
System.out.println(P+"潘阳湖");
System.out.println(T+"太湖");
}
}
}
}
}
}
}
给四大虎按照从大到小排序:
package unit01;
import java.util.Arrays;
import java.util.Comparator;
/*
* Date:2018/10/13
* Function:四大淡水湖排名算法
* @author:Heguoqing
* */
public class Class07 implements Comparator<Object[]>{
public int compare(Object[] o1, Object[] o2) {
int a=(Integer)o1[0];
int b=(Integer)o2[0];
return a-b;
}
public static void main(String[] args) {
int D,P,H,T;//分别定义整型的洞庭湖,潘阳湖,洪泽湖,太湖
for(D=1;D<=4;D++){
for(P=1;P<=4;P++){
if(P==D) continue;
for(H=1;H<=4;H++){
if(H==P||H==D) continue;
for(T=1;T<=4;T++){
if(T==H||T==P||T==D) continue;
int b1=(D==1?1:0)+(H==4?1:0)+(P==3?1:0);
int b2=(H==1?1:0)+(D==4?1:0)+(P==2?1:0)+(T==3?1:0);
int b3=(H==4?1:0)+(D==3?1:0);
int b4=(P==1?1:0)+(T==4?1:0)+(H==2?1:0)+(D==3?1:0);
if(b1==1&&b2==1&&b3==1&&b4==1){
//定义一个二维数组,因为数组的类型必须保持一致才能方便给数组类型而我需要的类型是不一致的
//所以我定义一个Object类型的二维数组,可以避免数组类型必须保持一致
Object [][] temp={{D,"洞庭湖"},{P,"潘阳湖"},{H,"洪泽湖"},{T,"太湖"}};
Arrays.sort(temp, new Class07());//这里需要new一个TestComparator类才能调用
for(int i=0;i<temp.length;i++){
System.out.println(temp[i][0]+" "+temp[i][1]);
}
}
}
}
}
}
}
}
题目:彩票35(1-35)随机选出不同的7个数字:
package demo1;
import java.util.Arrays;
public class A {
public int[] getNum(){
int []arr=new int[7];
for(int i=0;i<arr.length;){
double num=Math.random()*35;//[0,35)
num=Math.floor(num+1);//向下取整[1,35]
int s=(int)num;//[1,35]取整
boolean bool=false;
//判断产生的随机数是否相等相同的话就跳出循环
for(int x=0;x<arr.length;x++){
if(s==arr[x]){
bool=true;//查找到了相同的随机数
break;//跳出本次循环
}
}
//如果随机数不同加步长
if(bool==false){
arr[i]=s;
i++;
}
}
Arrays.sort(arr);
return arr;
}
public static void main(String[] args) {
A a=new A();
int []temp=a.getNum();//定义一个新的数组来接收方法中的数组
for(int n=0;n<temp.length;n++){
System.out.print(temp[n]+" ");
}
}
}
这篇博客探讨了Java中数组的基础知识,通过一个排序问题——中国四大淡水湖的大小排序,展示了数组在处理序列数据时的重要性。同时,还提出了一个彩票随机选号的算法问题,进一步说明了数组在实际编程中的应用场景。
9万+

被折叠的 条评论
为什么被折叠?



