日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

CoreJava 5.3 泛型数组列表

發布時間:2025/5/22 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CoreJava 5.3 泛型数组列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、為了解決運行時動態更改數組的問題,使用ArrayList類;它與數組很相似,但在增加或刪除元素時具有自動調節數組容量的功能。
2、ArrayList是采用類型參數的泛型類。用法:ArrayList<Class Name> ArrayList<Employee> staff = new ArrayList<Employee>();
3、使用add方法添加元素: staff.add(new Employee("Harry", ...)); staff.add(new Employee("Tome", ....)); 如果調用add且內部數組已滿時,數組列表就會自動創建一個更大容量的數組,并將小數組中的對象全部拷貝到大數組中。
4、預先分配容量大小:如果可以準確的預計數組可能存儲的元素數量,可以在填充數組前調用ensureCapacity方法: staff.ensureCapacity(100); ? ?//分配一個包含100個對象的內部數組。 這里如過調用100add,是不會重新分配空間的。
5、把初始容量傳遞給構造器: ArrayList<Employee> staff = new ArrayList<Employee>(100); 警告: 分配數組列表:new ArrayList<Employee>(100);與新數組分配空間:new Employee[100];不同。
數組列表的容量與數組的大小不同:數組分配100個存儲空間就表明這個數組有100個空位置可用(即用或不用那100個空間都會擺在那,不多不少);而容量為100的數組列表僅表明它擁有保存100個元素的潛力(所謂潛力就是可能超越100,可能不足100.這要實際運行中動態決定是否會重新分配容量),但是可以確定的是數組列表在完成初始化構造時不含任何元素。

6、size方法將返回數組列表實際元素個數:staff.size();返回staff數組列表的當前元素個數,等價于a.length; 當確定數組列表不再增刪元素時可以使用trimToSize方法。這個方法將存儲空間調整為當前元素所用空間,多于的交給垃圾回收器回收。注意:一定是確定數組列表大小不變后才使用該方法,因為使用該方法后再添加新元素就要花時間再次移動存儲塊,時間開銷較大。
5.3.1 訪問數組列表元素 1、ArrayList類不是Java的一部分。而是由某些人編寫且被放到標準庫中的一個實用類。
2、使用get和set方法訪問和改變數組元素,不能采用數組的[]語法格式。 例如:改變第i個元素:staff.set(i, harry); 等價于a[i] = harry; 警告:使用add方法添加新的元素,set方法只能改變已有元素的內容。
使用get訪問數組列表的元素:Employee e = staff.get(i); 等價于:Employee e = a[i];
3、介紹個技巧,即可靈活的擴展數組,又可以方便的訪問數組元素。 1)創建一個數組列表,并添加所有元素: ArrayList<X> list = ArrayList<X>(); while (...) { ? ? x = ...; ? ? list.add(x); }
2)使用toArray方法將數組列表元素拷貝到一個數組中: x[] a = new x[list.size()]; list.toArray(a);
3)除了在尾部追加元素之外,使用帶索引參數的add方法插入新元素: int n = staff.size() / 2; staff.add(n, e); 插入新元素后位于n后的所有元素自動向后移動,若超出容量將會重新分配存儲空間。
4)刪除元素:Emplouyee e = staff.remove(n);
5)使用“for each”循環對數組列表遍歷: for (Employee e : staff) ? ? //do something with e;
4、源代碼:例5-4,將Employee[]數組替換成ArrayList<Employee>。 注意變化: 不必指出數組的大小; 使用add想數組列表添加任意多的元素; 使用size代替length計算元素個數; 使用get[i]代替a[i]訪問元素。
ArrayListTest.java: [java] view plaincopy
  • package?com.vicent.corejava.arraylisttest;??
  • ??
  • import?java.util.ArrayList;??
  • ??
  • public?class?ArrayListTest?{??
  • ????public?static?void?main(String[]?args)?{??
  • ????????ArrayList<Employee>?staff?=?new?ArrayList<Employee>();??
  • ??????????
  • ????????staff.add(new?Employee("Carl",?7500,?1987,?12,?15));??
  • ????????staff.add(new?Employee("Harry",?5000,?1989,?10,?1));??
  • ????????staff.add(new?Employee("Tony",?4000,?1990,?3,?15));??
  • ??????????
  • ????????for?(Employee?e?:?staff)??
  • ????????????e.raiseSalary(5);??
  • ??????????
  • ????????for?(Employee?e?:?staff)??
  • ????????????System.out.println("name:?"?+?e.getName()??
  • ????????????????????+?",?salary:?"?+?e.getSalary()??
  • ????????????????????+?",?hireDay:?"?+?e.getHireDay());??
  • ??????????????
  • ????}??
  • ??
  • }??

  • Employee.java:
    [java] view plaincopy
  • package?com.vicent.corejava.arraylisttest;??
  • ??
  • import?java.util.Date;??
  • import?java.util.GregorianCalendar;??
  • ??
  • public?class?Employee?{??
  • ??
  • ????private?String?name;??
  • ????private?double?salary;??
  • ????private?Date?hireDay;??
  • ????private?double?raise;??
  • ??
  • ????public?Employee(String?aName,?double?aSalary,?int?year,?int?month,?int?day)?{??
  • ????????name?=?aName;??
  • ????????salary?=?aSalary;??
  • ????????GregorianCalendar?calendar?=?new?GregorianCalendar(year,?month?-?1,?day);??
  • ????????hireDay?=?calendar.getTime();??
  • ????}??
  • ??????
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ??????
  • ????public?double?getSalary()?{??
  • ????????return?salary;??
  • ????}??
  • ??????
  • ????public?Date?getHireDay()?{??
  • ????????return?hireDay;??
  • ????}??
  • ??????
  • ????public?void?raiseSalary(double?byPercent)?{??
  • ????????raise?=?salary?*?byPercent?/?100;??
  • ????????salary?+=?raise;??
  • ????}??
  • ??
  • }??

  • 運行結果: name: Carl, salary: 7875.0, hireDay: Tue Dec 15 00:00:00 CST 1987 name: Harry, salary: 5250.0, hireDay: Sun Oct 01 00:00:00 CST 1989 name: Tony, salary: 4200.0, hireDay: Thu Mar 15 00:00:00 CST 1990

    轉載于:https://www.cnblogs.com/vincent-hv/archive/2013/02/28/2958553.html

    總結

    以上是生活随笔為你收集整理的CoreJava 5.3 泛型数组列表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成人在线免费网址 | 日本大奶少妇 | 成人日批视频 | 麻豆传媒一区二区三区 | 国产午夜福利视频在线观看 | 红猫大本营在线观看的 | 日本韩国欧美一区二区 | 狠狠2020 | 国产综合内射日韩久 | 国产精品3区 | 婷婷综合| 日日干夜夜撸 | 欧美伦理一区 | 女人高潮潮呻吟喷水 | 黄色激情在线 | 成人小视频免费 | 污视频在线播放 | 国产视频1区2区3区 国产欧美一区二区精品性色99 | 欧美8888| 尤物精品在线观看 | 午夜久久久久久久久久 | 69人妻精品久久无人专区 | 少妇人妻在线视频 | 日本www高清视频 | 日韩综合一区二区三区 | 国际av在线| 少妇人妻丰满做爰xxx | 成年人视频网站 | 亚洲av无码国产在丝袜线观看 | 懂色av一区二区三区蜜臀 | 农村少妇久久久久久久 | 激情丁香婷婷 | 丰满人妻老熟妇伦人精品 | 国产一级黄色电影 | 97视频在线看 | 精品国产污污免费网站入口 | 波多野结衣在线视频播放 | 黄色aaaaa| 亚洲免费黄色 | 无人在线观看高清视频 | 精品九九在线 | 91国内在线视频 | 一级艳片新婚之夜 | 精品国产自在精品国产精小说 | 日韩无套 | 二区三区偷拍浴室洗澡视频 | 台湾swag在线播放 | ass亚洲肉体欣赏pics | 亚洲免费色 | 丁香八月婷婷 | 亚洲国产综合一区 | 9久久9毛片又大又硬又粗 | av在线一区二区 | 国产无毛av| 天天操综合网 | 特黄色一级片 | 美女扒开内裤让男人捅 | 明星双性精跪趴灌满h | 一级黄色a级片 | 美女扒开尿口给男人捅 | 成年人在线观看视频免费 | 久久免费视频观看 | 国产成人精品一区二区在线观看 | 国产在线日本 | 丁香激情网 | 国产三级全黄裸体 | 自拍偷拍五月天 | 91丝袜在线观看 | 好吊妞视频一区二区三区 | www视频在线观看网站 | 久久综合久久久久 | 自拍偷拍第2页 | 欧美无人区码suv | 日本免费一区二区视频 | 在线观看岛国av | 国产精品精品久久久久久 | 一级视频在线观看 | 99日韩精品| 午夜欧美精品久久久久久久 | 久久99精品久久久 | 激情丁香| 吊视频一区二区三区 | 中文高清av | 日本中文字幕在线免费观看 | 91麻豆成人精品国产免费网站 | 1024手机看片国产 | 欧美亚洲一级 | 能看的av| 欧美在线国产 | 中文av资源| 超碰美女在线 | 国产伦精品一区二区三区四区 | 森泽佳奈作品在线观看 | 超碰人人超 | 免费成人毛片 | 日韩欧美在线一区 | 污在线观看 | 99精品久久 | 竹菊影视日韩一区二区 |