Java设计思想
2023年6月23日大约 1 分钟
思想
统计
- 统计思想:利用map集合进行统计
遍历
- 遍历集合,按照指定的集合进行拼接的两种方式:
StringBuilder
StringJoiner
概率问题
- 如30%的甲,70%的乙:
- 创建一个新的集合:赋30%的"1",赋70%的"2"
- 对所创建的集合元素进行随机取值:
Random r = new Random();
- 对随机取得的值进行条件判断,取到的值就有概率
package CS408.CollectionText;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Text2 {
//班级里有N个学生要求:70%的概率随机到男生,30%的概率随机到女生
public static void main(String[] args) {
//创建集合
ArrayList<Integer> list = new ArrayList<>();
//添加元素
Collections.addAll(list,1,1,1,1,1,1,1);
Collections.addAll(list,0,0,0);
//从list中抽取1,0
Random r = new Random();
int index = r.nextInt(list.size());
int number = list.get(index);
//创建两个集合分别存储男生与女生
ArrayList<String> boyList = new ArrayList<>();
ArrayList<String> girlList = new ArrayList<>();
Collections.addAll(boyList,"男1","男2","男3","男4","男5","男6","男7","男8","男9");
Collections.addAll(girlList,"女1","女2","女3","女4","女5","女6","女7","女8");
//判断此时是从boyList里抽取,还是从girlList中抽取
if (number == 1){
int boyIndex = r.nextInt(boyList.size());
String name = boyList.get(boyIndex);
System.out.println(name);
}else {
int girlIndex = r.nextInt(girlList.size());
String name = girlList.get(girlIndex);
System.out.println(name);
}
}
}
对应思想
- 如果原始数据的规律非常复杂,可以先手动排序让每一个数据跟唯一的序号产生对应关系
- 序号就是数字,规律简单,后续的所有操作,以序号为准
- 当真正需要操作数据的时候,通过序号找到原始数据即可
封装
- 把具体的要求封装成方法