思想

统计

  • 统计思想:利用map集合进行统计

遍历

  • 遍历集合,按照指定的集合进行拼接的两种方式:
    • StringBuilder
    • StringJoiner

概率问题

  • 如30%的甲,70%的乙:
    1. 创建一个新的集合:赋30%的”1”,赋70%的”2”
    2. 对所创建的集合元素进行随机取值:Random r = new Random();
    3. 对随机取得的值进行条件判断,取到的值就有概率
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
}
}
}

对应思想

    • 如果原始数据的规律非常复杂,可以先手动排序让每一个数据跟唯一的序号产生对应关系
    • 序号就是数字,规律简单,后续的所有操作,以序号为准
    • 当真正需要操作数据的时候,通过序号找到原始数据即可

封装

  • 把具体的要求封装成方法