泛型陣列列表ArrayList
將Employee[]陣列替換成ArrayList<Employee>,有以下變化
不必指出陣列的大小
使用add將任意多的元素新增到陣列中
使用size()替代length計算元素的數目
使用a.get(i)替代a[i]訪問元素
ArrayList<>尖括號中的型別引數不允許是基本型別。即不允許寫成ArrayList<int>,而只能用Integer物件包裝器類ArrayList<Integer> list = new ArrayList<>();
ArrayList<>與陣列之間的轉換
1.陣列轉ArrayList--直接轉
import java.util.ArrayList;
public class Test
{
public static void main(String args[])
{
Employee[] staff = new Employee[2];
staff[0] = new Employee("alice");
staff[1] = new Employee("bob");
ArrayList<Employee> list = new ArrayList<>();
list.add(staff[0]);
list.add(staff[1]);
System.out.println(list.size());
for(Employee e: list)
{
System.out.println(e.getName());
}
}
}
class Employee
{
private String name;
public Employee(String n)
{
name = n;
}
public String getName()
{
return name;
}
}
output:2
alice
bob
2. ArrayList轉陣列--toArraypublic class Test
{
public static void main(String args[])
{
ArrayList<Employee> list = new ArrayList<>();
list.add(new Employee("alice"));
list.add(new Employee("bob"));
System.out.println(list.size());
Employee[] staff = new Employee[list.size()];
list.toArray(staff);//把list放進staff陣列中
for(Employee e: staff)
{
System.out.println(e.getName());
}
}
}
output:
2
alice
bob
ArrayList<E>示例小程式
import java.util.*;
/**
* This program demonstrates the ArrayList class.
*/
public class Test
{
public static void main(String args[])
{
ArrayList<Employee> staff = new ArrayList<>();
staff.add(new Employee("Alice", 75000, 1987, 12, 15));
staff.add(new Employee("Bob", 50000, 1989, 10, 1));
staff.add(new Employee("Carl", 40000, 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());
}
}
}
class Employee
{
private String name;
private double salary;
private Date hireDay;
public Employee(String n, double s, int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar cal = new GregorianCalendar(year, month-1, day);
hireDay = cal.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double percent)
{
salary *= (1 + percent/100);
}
public boolean equals(Object obj)
{
if(this == obj)
return true;
if(this == null)
return false;
if(this.getClass() != obj.getClass())
return false;
Employee tmp = (Employee)obj;
return Objects.equals(name, tmp.name) && this.salary==tmp.salary && hireDay.equals(tmp.hireDay);
}
public int hashCode()
{
return Objects.hash(name, salary, hireDay);
}
public String toString()
{
return getClass().getName()+"[name="+name+",salary="+salary+",hireDay="+hireDay+"]";
}
}
output:name=Alice, salary=78750.0, hireDay=Tue Dec 15 00:00:00 CST 1987
name=Bob, salary=52500.0, hireDay=Sun Oct 01 00:00:00 CST 1989
name=Carl, salary=42000.0, hireDay=Thu Mar 15 00:00:00 CST 1990
相關文章
- 泛型、陣列列表與協變泛型陣列
- java泛型之泛型陣列。Java泛型陣列
- C#中陣列Array、ArrayList、泛型List<T>的比較C#陣列泛型
- java 泛型陣列Java泛型陣列
- ajax 提交陣列 泛型集合陣列泛型
- 【ITOO】--陣列、集合、泛型解析陣列泛型
- Day22 集合,ArrayList,泛型泛型
- JAVA API:ArrayList(泛型類)基本使用JavaAPI泛型
- 對於ArrayList中的泛型進行分析泛型
- 手動實現ArrayList動態陣列陣列
- arraylist陣列元素插入及顯示示例陣列
- C++ 簡單實現陣列類泛型程式設計示例C++陣列泛型程式設計
- Java 集合列舉泛型(一)Java泛型
- Python列表建立NumPy陣列Python陣列
- 三,列表和陣列(筆記)陣列筆記
- 14、Scanner、Random、ArrayList、匿名物件、物件陣列random物件陣列
- Java 容器和泛型(2)ArrayList 、LinkedList和Vector比較Java泛型
- 面試官問你陣列和ArrayList怎麼答?面試陣列
- Java中將 int[] 陣列 轉換為 List(ArrayList)Java陣列
- LC-加一和ArrayList轉成陣列陣列
- c#之arraylist動態陣列小記(1)C#陣列
- Java陣列轉列表方式對比Java陣列
- TypeScript 陣列型別TypeScript陣列型別
- js陣列型別JS陣列型別
- 基於 golang 實現的泛型陣列,支援動態擴容等特性Golang泛型陣列
- 在靜態類中定義一個泛型方法查詢陣列元素泛型陣列
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 泛型類、泛型方法及泛型應用泛型
- 陣列容器(ArrayList)設計與Java實現,看完這個你不懂ArrayList,你找我!!!陣列Java
- Java基礎鞏固第三天(泛型、ArrayList、LinkList、HashSet)Java泛型
- 集合框架-ArrayList儲存字串、自定義物件並遍歷泛型版框架字串物件泛型
- ArrayList動態陣列物件 c# 1231陣列物件C#
- 陣列和列表的轉換問題陣列
- ArrayBuffer:型別化陣列型別陣列
- 陣列型別轉換陣列型別
- 泛型程式設計(模板函式,模板類的套用) Myvector 具體案例 實現可存放int 陣列 char陣列 類物件陣列 以及一組指標泛型程式設計函式陣列物件指標
- 泛型類和泛型方法泛型
- 【java】【泛型】泛型geneticJava泛型