ArrayList<E>
ArrayList是一种可调整的数组实现
E是一种特殊的数据类型,泛型,e指的是数据类型
IndexOutOfBoundsException:这句话就相当于数组下标越界,在这里就是集合越界
size就相当于数组里面的length都是表示长度
<>里面的是java里的泛型,泛型就是基本类型(int,char,float等等)在java中的封装的那几个(Integer,Character等等),<>作用就是确定到底存放什么类型
我们不知道到底有多少个数据元素的时候,就可使用ArrayList;如果知道数据集合有多少个元素,就用数组。
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static int n, r;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
r = sc.nextInt();
dfs(1, new ArrayList());
}
private static void dfs(int begin, ArrayList list) {
// 当数组长度等于设置的长度r时, 打印数组
if (list.size() == r) {
listPrint(list);
return;
}
for (int i = begin; i <= n; i++) {
// 添加元素
list.add(i);
dfs(i+1, list);
// 回溯
list.remove(list.size()-1);
}
}
// 打印函数, 每个元素占三个位置
public static void listPrint(ArrayList
list) {
for (int i: list){
if (i < 10)
System.out.print(" "+i);
else
System.out.print(" "+i);
}
System.out.println();
}
}