1.习惯;检查参数合法性,考虑特殊情况。
2.String 类型的写入用scanner.next;
String chess;
if(scanner.next() .equals("黑棋")
3.创建栈的代码
Stack<Integer> number = new Stack<Integer>();
4.系统自带的ArrayList创建方法
ArrayList<Students> stu_arr = new ArrayList<>();
5.String里面方法:
String.CharAt(坐标)方法可以选取字符串元素,如int start=0
String.CharAt(start);
String.substring(起始坐标)节选部分字符串,例如
String.substring(start+1,end-1)
6.捉异常
try{
//try里面放正确的句子,比如需要输入的Int类型的,输入错就出异常。
choice = scanner.nextInt();
}catch (Exception e){
System.out.println("非法输入");
}
7.构造泛型数组时候都能出错,哎,记一记。
private T[] elements;
public myarrayList() {
//这里用this就直接调用构造函数了,括号里面填参数就好了。
this((INITSIZE));
}
public myarrayList(int num) {
//因为数组被定义成泛型了,泛型不能new,所以先new Object然后强制转换成泛型数组(T[])。
this.elements = (T[]) new Object[num];
}
8.数组小问题
int[] brr = Arrays.copy0f(arr,arr.length+1);
是对数组本身做了扩容
System.arrcopy(arr,0,brr,0,arr.length);
打印数组Arrays.toString(array)
9.泛型new对象的正确姿势
MyLinkedList<Integer> list = new MyLinkedList<>();
10.链表也能toString
System.out.println(list.toString());
这是一段重写toString的代码,为了让toString返回我们想要的值,而不是地址。
@Override
public String toString() {
StringBuilder str = new StringBuilder();
for(Node<E> tmp =head;tmp!=null;tmp=tmp.getNext()) {
str.append(tmp.getValue());
}
return str.toString();
}
11.泛型类在主函数中要给成实际类型才能进行测试。
比如这么给
Deque<Integer> deque =new Deque<>();
12.add方法要判满,remove方法要判空,remove一般写成boolean类型。
13.打印数组要么用循环show函数要么重写toString函数,用StringBuild然后append,最后.toString。
14.新建类的时候Class后面+类名
15.Arraylist的使用
ArrayList List = new ArrayList<>(n); list.add 等方法
16.字符串转入char数组
char[] str=string.toCharArray();
17.char类型比较可以用==,因为比的是Asic码值
18.排序直接用Arrays.sort(数组)
19.String类型重写了equals方法所以比较的就是值。
20.堆排序要判断是否有右孩子。
21.#解决多行输入
用hasnext输入 ,再while代码里直接调用执行函数。
可以用Arraylist去存储
也可以用ArrayList<String[]>去存储数组
可以用spilt将空格分开
将String转为Iterge类型用Interge.parseInt();