10-面向物件作業第5部分
摘要:
101、什麼是迭代器?
迭代器模式:就是提供一種方法
對一個容器物件中的各個元素進行訪問,
而又不暴露該物件容器的內部細節。
102、如何使用迭代器遍歷集合?
while(it.hasNext){
System.out.println(it.next())
...
101、什麼是迭代器?
迭代器模式:就是提供一種方法 對一個容器物件中的各個元素進行訪問, 而又不暴露該物件容器的內部細節。
102、如何使用迭代器遍歷集合?
while(it.hasNext){ System.out.println(it.next()) }
103、使用迭代器遍歷自己定義集合
答:while(it.hasNext){ Cat cat =(cat)it.next(); }
104、如何根據解標獲取集合當中的元素?
list.get(角標)
105、遍歷集體時有什麼注意點?
Iterator遍歷時不可以刪除集合中的元素 在使用迭代器遍歷時,是不允許直接修改集合結構。
106、為什麼會有併發修改異常?
在獲取迭代器時, 會和集合進行關聯 保持兩邊資料一至 內部會有一個modCount 和 expectedModCount 預設他們兩個是相等的 modCount:集合記錄修改次數 expectedModCount迭代器當中記錄集合修改的次數 在我們取元素的時候,都會先做一個判斷 modCount 和 expectedModCount兩個預設是相等的 會判斷modCount與expectedModCount是否相等, 如果不相等就不會丟擲一個併發修改異常
107、如何解決併發修改異常?
使用list當中特有的迭代器 list.listIteration();
108、寫出迭代器常用方法
hasNext(); next(); hasPrevious(); previous(); nextInde(); previousIndex(); remore(); set(); add();
109、描述一下ArrayList內部實現原理
把原來的資料複製出來, 在建立一個數組容量增加50%, 把複製的陣列放到新陣列當中原來的陣列扔掉
110、如何去除集體當中重複的元素?
1 建立一個空集合 ArrayList list2 = new ArrayList(); 2 依次取出每一個元素 ListIterator it = list.listIterator(); while(it.hasNext()) { 3每取出一個袁術,要先判斷集合當中是否包含該元素 Object obj = it.next(); if(!list2.contains(obj)){ 4若果已經包含該元素,就不打元素新增到新集合當中 list2.add(obj); } }
111、equals方法的作用是什麼?
判斷地址從而比價兩個值是否相等
112、如何進行ArrayList與LinkedList使用上的選擇?
在經常插入與刪除元素使用LinkedList因為連結串列插入與刪除比較快 在經常查詢選擇ArrayList因為陣列查詢比較快
113、寫出linkeList特有的方法有哪些?
往第一個位置新增元素 list.addFrisr(" a"); 在集合的最後新增一個元素 list.addLast("b") 移除第一個元素 list.removeFirst() 移除最後有個元素 list.removeLast() 根據角標獲取元素 list.get(0);
114、Vector特有那些方法?
在1.2以前 新增元素 vc.addElement(obj); 獲取所有元素 Enumeration en = vc.elements(); while(en.hasMoreElements()) { System.out.println(en.nextElement()); }
115、沒有泛型時存在哪些問題?
1.取出來的值必須要轉換相應的一個類才能使用對應的方法 2.沒有辦法約束某一種型別 3.設計一個類,沒辦法可變多種型別
116、什麼是泛型?
使用一個T表示 開始不指定型別, 在使用時再去指定真正的型別 T為變化的 使用時再去確定具體的型別
117、集合使用泛型有些好處?
集合指定泛型後,只能新增指定的型別 定義泛型後,不需要強轉
118、集合當中定義的泛型能不能存放基本資料型別?
不能
119、使用泛型時,有哪些注意點?
1.泛型前後前後型別保持一致 2.從java7開始,後面的型別可以不用寫 newArrayList<>();菱形語法 3.泛型沒有繼承
120、泛型的本質是什麼?
泛型的本質還是Object
121、什麼是泛型類?
泛型類就在類上面定義的泛型。
122、什麼是泛型方法?
泛型方法就是在方法上新增的泛型
123、如何定義泛型方法?
在返回值前面宣告泛型, 在使用方法時,引數傳遞確定具體是什麼型別, 方法單獨使用泛型,必須要有引數才有意義
124、什麼是泛型萬用字元?
不知道使用什麼型別來接收的時候可以用?表示未知
125、如何定義泛型萬用字元?
static void text(list<?> list){ }
126、什麼是泛型的上限和下限?
用來限定元素的型別必須是型別的子類(父類)或者是指定型別的類
127如何定義上限和下限?
上限: static void text(List <? extends Number>list){ } 下限: static void text(List <? super Number>list){ }
128、什麼是泛型擦除?
就是把泛型給去掉了
129、如何把一個數組直接轉成集合?
呼叫:Arrays.aslist(陣列名);
130、陣列轉集合有哪些注意點?
陣列轉換集合並不能新增,刪除元素 基本資料型別轉換集合時, 是把基本資料型別的陣列當做物件
習題配套視訊 點選以下連結檢視
ofollow,noindex">https://study.163.com/courses-search?keyword=%E9%AB%98%E6%96%B0%E5%BC%BA