一.yield關鍵字
用于switch語句上的case代碼塊的返回值
舉例:
二.var關鍵字
作用:當類型名字較長時可以簡化代碼。
注意事項:
1.不能使用var來聲明字段
2.不能使用var來聲明方法參數
3.不能使用var來聲明方法返回類型
4.使用時必須初始化,但不能初始化為null
三.密封類
之前講過用final密封類,JDK17提供了一個新關鍵字sealed關鍵字來密封類
區別:該密封的類必須‘有子類繼承(既要有子類),此外還提供了permits關鍵字來限制子類
還提供了non-sealed關鍵字給繼承sealed修飾的父類的子類進行聲明該子類可被任何類繼承
舉例:
四.instance關鍵字
五.順序表
解釋:順序表使用一段物理地址連續的存儲單元依次存儲數據元素的線性結構,一般采用數組存儲,在數組上完成增刪查改
注意:Arraylist底層是一段連續的空間,但不能通過對象下標訪問
1.簡單模擬實現:
public class Arraylist {public int array[];public int size;public Arraylist(int capacity){this.array =new int[capacity];}public boolean isFull(){return size==array.length;}private void grow(){this.array= Arrays.copyOf(this.array,2*array.length);}public void checkpos(int pos){if (pos<0||pos>size){throw new PostException("下標異常!!!");}}public void checkpos2(int pos){if (pos<0||pos>=size){throw new PostException("下標異常!!!");}}public void checkempty(){if (size==0){throw new EmptyException("該列表為空");}}public void add(int num)throws EmptyException {if (isFull()){grow();}array[size]=num;size++;}public void add(int num,int pos){try {checkpos(pos);if (isFull()){grow();}for (int i = size; i > pos; i--) {array[i]=array[i-1];}array[pos]=num;size++;}catch (PostException e){e.printStackTrace();}}public boolean contains(int num){for (int i = 0; i < size; i++) {if (array[i]==num){return true;}}return false;}public int index(int num){try {checkempty();for (int i = 0; i < size; i++) {if (array[i]==num){return i;}}return -1;}catch (EmptyException e){e.printStackTrace();}return -1;}public int gets(int pos){try {checkempty();checkpos2(pos);return array[pos];}catch (EmptyException e){e.printStackTrace();}catch (PostException e){e.printStackTrace();}return -1;}public void set (int num, int pos){try {checkempty();checkpos2(pos);array[pos]=num;}catch (PostException e){e.printStackTrace();}catch (EmptyException e){e.printStackTrace();}}public void remove(int pos){try {checkempty();checkpos2(pos);for (int i = pos; i <size-1 ; i++) {array[i]=array[i+1];}size--;}catch (EmptyException e){e.printStackTrace();}catch (PostException e){e.printStackTrace();}}public void clear(){size =0;}public void display(){for (int i = 0; i < size; i++) {System.out.print(" "+array[i]);}}
}