这边选取之前的选美,讲美女做成一个对象
public class BL {
private int height;
private int wight;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWight() {
return wight;
}
public void setWight(int wight) {
this.wight = wight;
}
}
需要改的三段代码 第一段返回List 返回一个对象列表 ,这边循环3次 bl在for循环中 循环了3次所以返回3个对象列表 用列表对象 而不是单单用对象。
public List<BL> getHW() {
List<BL> bll=new ArrayList<>();
for (int i=0;i<3;i++){
BL bl=new BL();
System.out.println("输入身高 体重");
int h=scanner.nextInt();
int w=scanner.nextInt();
bl.setHeight(h);
bl.setWight(w);
bll.add(bl);
}
return bll;
}
第二段 参数为列表对象 主要看懂for(BL b2:bill)和sumW += b2.getWight(); bill有3个列表对象 他会一一拿走。
public Map<String, Integer> getSumHW(List<BL> bll) {
int sumH = 0;
int sumW = 0;
for (BL bl :bll) {
sumH += bl.getHeight();
}
for (BL b2:bll) {
sumW += b2.getWight();
}
Map map = new HashMap();
map.put("sumh", sumH);
map.put("sumw", sumW);
return map;
}
第三段 主函数
public static void main(String[] args) {
Listxuan xuan = new Listxuan();
List<BL> map= xuan.getHW();
Map<String, Integer> sumHW = xuan.getSumHW(map);
Map<String, Integer> avgHW = xuan.getAvgHW(sumHW);
System.out.println("总身高:"+sumHW.get("sumh"));
System.out.println("总体重:"+sumHW.get("sumw"));
System.out.println("均身高:"+avgHW.get("avgh"));
System.out.println("均体重:"+avgHW.get("avgw"));
xuan.panDuan(avgHW);
斗地主的发牌代码
1.无排序 数组法
public static String[] newPoker(){
String[] color={"♥","♠","♣","♦"};
String[] numbers={"3","4","5","6","7","8","9","10","j","q","k","A","2"};
String[] kings={"b","s"};
String[] pokers=new String[54];
int index=0;
for (int i=0;i<color.length;i++){
for (int j=0;j<numbers.length;j++){
pokers[index++]=color[i]+numbers[j];
}
}
System.arraycopy(kings,0,pokers,pokers.length-2,2);
return pokers;
}
public static String[] swap(String[] a,int i,int j){
String temp=a[i];
a[i]=a[j];
a[j]=temp;
return a;
}
public static String[] shuffle(String[] a){
Random rand=new Random();
for (int i=a.length;i>0;i--){
int b =rand.nextInt(i);
swap(a,i-1,b);
}
return a;
}
public static void faPai(String[] a){
int b=(a.length-3)/3;
String a1[]=new String[b];
String a2[]=new String[b];
String a3[]=new String[b];
String a4[]=new String[3];
System.arraycopy(a,0,a1,0,b);
System.arraycopy(a,b,a2,0,b);
System.arraycopy(a,2*b,a3,0,b);
System.arraycopy(a,a.length-3,a4,0,3);
System.out.println(Arrays.toString(a1));
System.out.println(Arrays.toString(a2));
System.out.println(Arrays.toString(a3));
System.out.println(Arrays.toString(a4));
}
public static void main(String[] args) {
String [] poker=Kabuqinuo.newPoker();
String [] poker2=Kabuqinuo.shuffle(poker);
Kabuqinuo.faPai(poker2);
}
2.有排序集合法
package com.zhongruan;
import java.util.*;
public class Doudizhu {
//看牌
public static void lookPai(Map<Integer,String> map, List<Integer> a1){
for (Integer a:a1){
String one =map.get(a);
System.out.printf(one+" ");
}
System.out.println();
}
public static void main(String[] args) {
List<Integer> poker=new ArrayList<>();
Map<Integer,String> map=new HashMap<>();
int index=0;
String[] nums={"3","4","5","6","7","8","9","10","j","q","k","A","2"};//按顺序写 影响结果
String[] colors={"♠","♥","♣","♦"};
for (String num:nums){ //按顺序影响结果
for (String color:colors){
map.put(index,color+num);
poker.add(index++);
}
}
map.put(index,"小王");
poker.add(index++);
map.put(index,"大王");
poker.add(index++);
List<Integer> a1=new ArrayList<>();
List<Integer> a2=new ArrayList<>();
List<Integer> a3=new ArrayList<>();
List<Integer> dipai=new ArrayList<>();
Random random=new Random();
Collections.shuffle(poker);
for (int i=0;i<poker.size();i++){
if (i>=51){
dipai.add(poker.get(i));
}
else if (i%3==0){
a1.add(poker.get(i));
}
else if (i%3==1){
a2.add(poker.get(i));
}
else {
a3.add(poker.get(i));
}
}
Collections.sort(a1);
Collections.sort(a2);
Collections.sort(a3);
Collections.sort(dipai);
Doudizhu.lookPai(map,a1);
Doudizhu.lookPai(map,a2);
Doudizhu.lookPai(map,a3);
Doudizhu.lookPai(map,dipai);
}
}
如果有更好的方法欢迎发出来 我只是个小白。