1
Deque接口下的兩個類 LinkedList,ArrayDequeLinkedList:雙向鏈表
ArrayDeque:用數組實現
的隊列(當用作堆棧時,此類可能會比Stack快,並且當用作隊列時速度高於LinkedList )。
總結:(對於大量在兩端操作時)總體效率上ArrayDeque>LinkedList
2:
BufferReader br = new BufferReader(new InputStreamReader(System.in))Scanner sc = new Scanner(System.in)
BufferReader效率比Scanner高3:
try{}catch(){}效率會比throws慢一點點4:
字符串比數字存儲需要的內存多點5:
Integer.parseInt類型轉換會耗費一定的時間
附上代碼:
import java.io.*;
import java.util.*;
public class _CDoublyLinkedList {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Deque<String> list = new ArrayDeque<>();
for (int i = 0; i < n; i++) {
String sp = br.readLine();
if (sp.startsWith("insert")) {
list.addFirst(sp.substring(sp.indexOf(" ") + 1));
} else if (sp.equals("deleteFirst")) {
list.removeFirst();
} else if (sp.equals("deleteLast")) {
list.removeLast();
} else {
list.remove(sp.substring(sp.indexOf(" ") + 1));
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder ans = new StringBuilder();
ans.append(list.poll());
for (String s : list) {
ans.append(" ");
ans.append(s);
}
bw.write(ans.toString());
bw.newLine();
bw.close();
br.close();
}
}