一、基础语法部分(请自行复习相关语法)
1.1 数组的定义
1.2 输入输出方式(必要时需要快读和快写)
二、Java中模拟结构体数组的实现方案
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Node node[] = new Node[11];
for(int i = 0;i < node.length; i++)
{
node[i] = new Node();
node[i].x = i;
node[i].y = i+1;
}
for(int i = 0;i < node.length; i++)
{
System.out.print(node[i].x+" "+node[i].y+"\n");
}
}
}
class Node {
public int x;
public int y;
}
三、Java中的“STL”
3.1Queue栈
Queue<Integer> queue = new LinkedList<>();
3.2Stack队列
Stack<Integer>stack = new Stack<>();
3.4List---动态数组
List<Integer>list = new ArrayList<>();
3.5 Map---散列表
Map<Integer,Integer> map = new HashMap();
3.3Set---集合
Set<Integer> set = new HashSet<>();
3.4Priority Queue---优先队列
Set<Integer> set = new HashSet<>();
四、补充小知识点
4.1无穷大
0x3f3f3f==>Integer.MAX_VALUE
4.2 Java中的memset
int[][] g=new int[N][N]; //创建二维数组
int[] lin=new int[N]; //创建一维数组
Arrays.fill(lin,Integer.MAX_VALUE); //填充一维数组
Arrays.fill(g,lin); //使用一维数组填充二维数组
4.3 结构体
利用没有方法的类来实现
public class Main {
static class edge{
int a,b,c;
}
static edge[] e = new edge[10010];
public static void main(String[] args) {
for(int i = 1;i <= 10;i++) {
//注意这里还要为数组中的每个元素定义一个对象
e[i] = new edge();
e[i].a = e[i].b = e[i].c =i;
}
for(int i = 1;i <= 10;i++) {
System.out.print(e[i].c+" ");
}
}
}