JAVA ArrayList集合
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
1.1 集合的创建
创建集合的常用格式在此说明一下:
导包:import java.util.ArrayList;
创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
l 集合中存储的元素,只能为<>括号中指定的数据类型元素;
l “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;
基本数据类型 |
对应的引用数据类型表示形式 |
byte |
Byte |
short |
Short |
Int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
我们通过举几个例子,来明确集合的创建方式:
l 存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
l 存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>();
l 存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();
1.2 集合中常用方法
方法声明 |
功能描述 |
boolean add(Object obj) |
将指定元素obj追加到集合的末尾 |
Object get(int index) |
返回集合中指定位置上的元素 |
int size() |
返回集合中的元素个数 |
import java.util.ArrayList; public class ArrayListDemo01 { public static void main(String[] args) { // 创建ArrayList集合 ArrayList<String> list = new ArrayList<String>(); // 向集合中添加元素 list.add("stu1"); list.add("stu2"); list.add("stu3"); list.add("stu4"); // 获取集合中元素的个数 System.out.println("集合的长度:" + list.size()); // 取出并打印指定位置的元素 System.out.println("第1个元素是:" + list.get(0)); System.out.println("第2个元素是:" + list.get(1)); System.out.println("第3个元素是:" + list.get(2)); System.out.println("第4个元素是:" + list.get(3)); } }
ArrayList集合相当于是一个长度可变的数组,所以访问集合中的元素也是采用索引方式访问,第一个元素存储在索引0的位置,第二个元素存储在索引1的位置,依次类推.
1.3 集合的遍历
13import java.util.ArrayList; 14public class ArrayListDemo02 { 15 public static void main(String[] args) { 16 //创建ArrayList集合 17 ArrayList<Integer> list = new ArrayList<Integer>(); 18 //添加元素到集合 19 list.add(13); 20 list.add(15); 21 list.add(22); 22 list.add(29); 23 //遍历集合 24 for (int i = 0; i < list.size()[获取集合中元素的个数]; i++) { 25 //通过索引,获取到集合中每个元素 26 int n = list.get(i)[获取集合中指定位置上的元素值]; 27 System.out.println(n); 28 } 29 } 30}
1.4 集合中的常用方法补充
方法声明 |
功能描述 |
boolean add(int index, Object obj) |
将指定元素obj插入到集合中指定的位置 |
Object remove(int index) |
从集合中删除指定index处的元素,返回该元素 |
void clear() |
清空集合中所有元素 |
Object set(int index, Object obj) |
用指定元素obj替代集合中指定位置上的元素 |
l boolean add(int index, Object obj)
n 功能:在集合中指定index位置,添加新元素obj
n 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。
l Object set(int index, Object obj)
n 功能:用指定元素obj替代集合中指定index位置的元素
n 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。
l Object remve(int index)
n 功能:从集合中删除指定index处的元素,返回该元素
n 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。
l void clear()
n 功能:清空集合中所有元素
n 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[ ]。
1.5 随即点名器案例分析
随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。
我们来完成随机点名器,它具备以下3个内容:
l 存储所有同学姓名
l 总览全班同学姓名
l 随机点名其中一人,打印到控制台
import java.util.Scanner; import java.util.Random; public class hanghang { public static void main(String[] args){ String[] name = new String[3]; for(int i=0;i<name.length;i++){ Scanner sc = new Scanner(System.in); System.out.println("输入第"+ (i+1) +"个名字"); name[i] = sc.next(); //next后面不跟Int 因为后面sc是字符串 *** } System.out.println("--------------------------"); for(int i=0;i<name.length;i++) { System.out.println( name[i]); } Random ran = new Random(); int s = ran.nextInt(name.length); System.out.println("--------------------------"); System.out.println("得到的随机姓名是:"+ name[s]); } }
1.6 库存管理案例分析
01.package Library; 02. 03.import java.io.Serializable; 04. 05.public class Book implements Serializable{ 06. 07. private int bookId; 08. private String bookName; 09. private String auther; 10. private String pubDate; 11. private double price; 12. private int store; 13. public int getBookId() { 14. return bookId; 15. } 16. public void setBookId(int bookId) { 17. this.bookId = bookId; 18. } 19. public String getBookName() { 20. return bookName; 21. } 22. public void setBookName(String bookName) { 23. this.bookName = bookName; 24. } 25. public String getAuther() { 26. return auther; 27. } 28. public void setAuther(String auther) { 29. this.auther = auther; 30. } 31. public String getPubDate() { 32. return pubDate; 33. } 34. public void setPubDate(String pubDate) { 35. this.pubDate = pubDate; 36. } 37. public double getPrice() { 38. return price; 39. } 40. public void setPrice(double price) { 41. this.price = price; 42. } 43. public int getStore() { 44. return store; 45. } 46. public void setStore(int store) { 47. this.store = store; 48. } 49. public Book(int bookId, String bookName, String auther, String pubDate, 50. double price, int store) { 51. super(); 52. this.bookId = bookId; 53. this.bookName = bookName; 54. this.auther = auther; 55. this.pubDate = pubDate; 56. this.price = price; 57. this.store = store; 58. } 59. public Book() { 60. // TODO Auto-generated constructor stub 61. } 62. 63. 64.}</strong></span><span style="font-size:18px;font-weight: bold;"> 65.</span>