一、数据类型
空 null
1.数字 int 整型;float 浮点型;double 双浮点型
2.字符 char a = 'a' 单引号
3.布尔型 boolean x = true/false 输出1/0
4.引用类型 类、接口、数组、枚举、标注都是引用数据类型 Test t = new Test();
二、数据结构
1.数组 长度不可变
a.初始化
动态初始化
int[] a = new int[10];
静态初始化
int[] a = {1,2,3};
b.遍历
#for循环
for(int i = 0; i<a.length; i++){
System.out.println(a[i]);
}
#for-each循环
for(int x:b){
System.out.println(x);
}
2.string 字符串,长度不可变,实质是被final修饰的char数组
a.初始化
String a = "abc";
String a = new String("abc");
b.遍历
for(int i = 0; i<a.length(); i++){ System.out.println(a.charAt(i)); }
c.操作
增 a.concat(b) 相当于+
减 a.split(regex) 根据正则拆分
查 a.contains(b) a.equals(b) a.indexOf('a') a.isEmpty() a.matches(regexs) 包含,相同,索引,为空,正则匹配
改 a.replace(b,c) 匹配b替换为c
3.ArrayList 动态数组
a.初始化
ArrayList<Integer> a = new ArrayList<>();
b.遍历
for(int i = 0;i < a.size(); i ++){ System.out.println(a.get(i)); } for(Integer k:a){ System.out.println(k); }
c.操作
增 a.add(k); 循环使用a.add(0,k),构成栈结构,先进后出
查 a.indexOf(5);
返回索引元素 a.get(i);
删 a.remove(k/i); 第一个元素或索引
为空 a.isEmpty();
改 a.set(i,k); 第i个元素改为k
4.链表
a.定义与初始化
#定义 public class Node { public int data; public Node next; public Node() { } public Node(int data) { this.data = data; } public Node(int data, Node next) { this.data = data; this.next = next; } } #初始化 Node second_node = new Node(2); Node head = new Node(1, second_node);
b.遍历
ListNode *ptr = head; while (ptr != null) { System.out.println(ptr.data); ptr = ptr.next; }
5.栈 Stack是Vector的一个子类,实现了一个标准的后进先出的栈
a.初始化
Stack<Integer> a= new Stack<Integer>();
b.遍历
while(!a.empty()){ a.peek(); a.pop(); }
c.操作
入栈 a.push(1);
出栈 a.pop();
查看栈顶元素 a.peek();
元素个数 a.size();
为空 a.empty();
查 a.search(5); 返回以 1 为基数的int
三.常用方法
1.Arrays.copyOfRange()
import java.util.*; 参数:数组名,开始索引,结束索引 前含后不含