參考資料:java
XMind數組
/** * 判斷動態數組是否包含元素o */ public boolean contains(Object o) { return indexOf(o) >= 0; } /** * 返回第一個出現的元素o的索引位置 */ public int indexOf(Object o) { if (o == null) {//返回第一個null的索引 for (int i = 0; i < size; i++) if (elementData[i] == null) return i; } else {//返回第一個o的索引 for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1;//若不包含,返回-1 } /** * 返回最後一個出現的元素o的索引位置 */ public int lastIndexOf(Object o) { if (o == null) { for (int i = size - 1; i >= 0; i--) if (elementData[i] == null) return i; } else { for (int i = size - 1; i >= 0; i--) if (o.equals(elementData[i])) return i; } return -1; }
首先調用indexOf(),判斷傳入的對象是否爲空,若是爲空,則遍歷整個集合的元素,若是集合的某個元素爲空,返回該元素的下標。
若是傳入對象不爲空,則遍歷整個集合的元素,若是該元素和集合內某個元素的equals比較結構爲true,返回該元素下標。
若是遍歷完集合後沒有元素存在於集合中就返回-1。最後若是indexOf()方法返回大於0,就說明集合內存在該元素,小於0則不存在函數
/** * 刪除指定索引index下的元素,返回被刪除的元素 */ public E remove(int index) { RangeCheck(index);//檢查索引範圍 E oldValue = (E) elementData[index];//被刪除的元素 fastRemove(index); return oldValue; }
remove是將index下標的元素去除掉以後,後續元素依次向前移動學習
不須要,arr是一個動態數組(ArrayList),其中能夠放進去多種類型的數據設計
新建一個新的數組,長度爲內部的一個函數進行計算後返回的結果.以後對a進行copy。copy兩次。
第一次copy爲從0開始,copy長度爲index。
第二次爲從index+1開始,copy長度爲s-index.其實最終目的就是把中間index下標空出來。再將objcet 複製給 a[index]code
使用private,外部類不能直接訪問修改該方法,由於外部類沒有修改方法的必要,使用public並非不能夠對象
向HashSet中添加一個元素時,HashSet會調用該對象的hashCode()方法獲得其hashCode值,而後根據該值決定該對象的存儲位置,
可是若是有兩個元素經過equals()方法比較返回true,而它們的hashCode()方法返回值不等,HashSet也會將它們存儲在不一樣的位置blog
ArrayListIntegerStac使用ArrayList存儲,能夠擴充容量;ArrayIntegerStack使用integer數組,數組容量須要事先設定排序
接口更容易實現擴展功能,java類與類之間只能單繼承,類與接口之間能夠多實現,不改源碼,能夠定義多個接口加強功能,之後複寫接口中的抽象方法
寫小的應用程序看不到接口的優點,寫大點的程序就顯示出接口的優點繼承
public class Main2015121 { public static void main(String[] args) { Stack<Character> stack = new Stack<Character>(); Scanner scanner = new Scanner(System.in); int a = 1; String string = scanner.next(); for (int i = 0; i < string.length(); i++) { stack.push(string.charAt(i)); } for (int j= 0; j < string.length(); j++) { if (stack.pop() != string.charAt(j)) { System.out.println("否"); break; } else { System.out.println("是"); break; } } } }
首先須要針對 A 和 B 業務設計兩個循環隊列,分別處理兩類業務請求;
而後 根據輸入序列整數的奇偶性將各個整數分配到這兩個隊列中。
另外,須要設計針 對兩個隊列處理過程的流程,這是一個循環。
在循環中,先從 A 隊列中輸出兩個 元素,而後再從 B 隊列中輸出一個元素。當發現某一個隊列中的元素爲空時,輸 出另外一個隊列中的全部元素
注意對隊列滿、空狀況的 判斷。
這裏能夠用String裏的split方法分割這個字符串,這樣就能夠統計單詞數和排序了
還能夠用Scanner類,Scanner類是一個掃描器,它能夠掃描根據咱們的要求字符串,達到想要的結果
面向對象設計大做業-改進
7.1 完善圖形界面(說明與上次做業相比增長與修改了些什麼)
7.2 使用集合類改進大做業
參考資料:
JTable參考項目
題目集:jmu-Java-05-集合
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖