<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[success] # List集合 1. `java.util.List`集合是**Collection集合的子集合**,該集合中允許**有重復的元素**并且有先后放入次序 2. 該集合的主要實現類有:`ArrayList類`、`LinkedList類`、`Stack類`、`Vector類` 3. `ArrayList`類的底層是采用動態數組進行數據管理的,支持下標訪問,數組結構,支持自動擴容 ~~~ import java.util.ArrayList; import java.util.List; public class ListTest { public static void main(String[] args) { // 創建ArrayList 實現了接口List ,因此一個List接口類型的引用指向ArrayList類型的對象,形成了多態 // 由源碼可知:當new對象時并沒有申請數組的內存空間 List lt1 = new ArrayList(); // 第一次增加會申請ArrayList的默認初始容量為10,當然也可以自定義指定初始容量,隨著動態的向其中添加元素, // 其容量可能會動態的增加,那么擴容的公式為:新容量 = 舊容量/2 + 舊容量 // 比如:初始容量為4,其容量的每次擴充后的新容量為:4->6->9->13->19->…即每次擴充至原有基礎的1.5倍 lt1.add("one"); } } ~~~ 4. `LinkedList`類的底層是采用雙向鏈表進行數據管理的,鏈表數據結構更適合于插入和刪除 5. `Stack`類的底層是采用動態數組進行數據管理的,該類主要用于描述一種具有**后進先出**特征的數據結構,叫做棧(last in fifirst out LIFO) ~~~ import java.util.Stack; public class StackTest { public static void main(String[] args) { // 1.準備一個Stack類型的對象并打印 Stack s1 = new Stack(); Stack s2 = new Stack(); System.out.println("s1 = " + s1); // [啥也沒有] System.out.println("s2 = " + s2); // [啥也沒有] System.out.println("-----------------------------------------------"); // 2.將數據11、22、33、44、55依次入棧并打印 for (int i = 1; i <= 5; i++) { Object obj = s1.push(i * 11); System.out.println("入棧的元素是:" + obj); //System.out.println("棧中的元素有:" + s1); // 11 22 33 44 55 } System.out.println("-----------------------------------------------"); // 3.查看棧頂元素值并打印 //Object obj2 = s1.peek(); //System.out.println("獲取到的棧頂元素是:" + obj2); // 55 System.out.println("-----------------------------------------------"); // 4.對棧中所有元素依次出棧并打印 int len = s1.size(); for (int i = 1; i <= len; i++) { Object to = s1.pop(); //System.out.println("出棧的元素是:" + to); // 55 44 33 22 11 s2.push(to); } System.out.println("-----------------------------------------------"); // 5.最終打印棧中的所有元素 //System.out.println("s1 = " + s1); // [啥也沒有] System.out.println("-----------------------------------------------"); len = s2.size(); for (int i = 1; i <= len; i++) { Object to = s2.pop(); System.out.println("出棧的元素是:" + to); // 11 22 33 44 55 } } } ~~~ 6. `Vector`類的底層是采用動態數組進行數據管理的,該類與ArrayList類相比屬于線程安全的類,效率比較低,以后開發中基本不用 >[danger] ##### List 常用api |方法聲明 |功能介紹| |--|--| |void add(int index, E element) |向集合中指定位置添加元素| |boolean addAll(int index, Collection<? extends E> c)| 向集合中添加所有元素| |E get(int index)| 從集合中獲取指定位置元素| |int indexOf(Object o) |查找參數指定的對象| |int lastIndexOf(Object o) |反向查找參數指定的對象| |E set(int index, E element) |修改指定位置的元素| |E remove(int index)| 刪除指定位置的元素| |List subList(int fromIndex, int toIndex) |用于獲取子List| ~~~ import java.util.ArrayList; import java.util.List; public class ListTest { public static void main(String[] args) { // 1.創建一個list 集合 List ls = new ArrayList(); // add 向集合中添加元 ls.add("1"); // 末尾插入 ls.add(0, "w"); // 指定插入元素位置 集合頭部 // addAll 向集合中添加所有元素 List ls1 = new ArrayList(); ls1.add("1"); ls1.add("2"); ls.addAll(ls1); System.out.print(ls); // [w, 1, 1, 2] // get 根據下標獲取元素 Object o = ls.get(0); System.out.print(o); // w // 向下轉型 獲取 實際存儲的類型值 String str = (String) ls.get(0); System.out.print(str); // w // 使用 get 實現 toString 效果 StringBuffer strB = new StringBuffer(); strB.append('['); for (int i = 0; i < ls.size(); i++) { strB.append(ls.get(i)); if (ls.size() - 1 == i) { strB.append(']'); } else { strB.append(','); } } System.out.print(strB); // indexOf 根據值獲取索引 int index = ls.indexOf("1"); System.out.print(index); // 1 // lastIndexOf 從后往前找 index = ls.lastIndexOf("1"); System.out.print(index); // 2 // set 修改指定位置元素 String s = (String) ls.set(0, "wwwww"); System.out.print("被修改位置元素" + s); // w // w 被修改為 wwwww System.out.print(ls); // [wwwww, 1, 1, 2] // remove 刪除元素 ls.remove("wwwww"); System.out.print(ls); // [1, 1, 2] // 刪除全部 元素 // for (int i = 0; i < ls.size(); ) { // 利用刪除元素 size 改變來刪除 /* * for (int i = ls.size()-1; i >= 0; i--) { // 倒序刪除 * //System.out.println("被刪除的元素是:" + ls.remove(i)); * 刪除元素后,后面的元素補位 * //System.out.println("被刪除的元素是:" + ls.remove(0)); * System.out.println("被刪除的元素是:" + ls.remove(i)); * } */ // subList 獲取當前集合中的子集合,也就是將集合中的一部分內容獲取出來,子集合和當前集合共用同一塊內存空間 List lt2 = ls.subList(1, 3); System.out.println("lt2 = " + lt2); // [1, 2] } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看