接著上一篇,接著講講集合的知識。上一篇講了Collection接口。它可以說是集合的祖先了,我們這一篇就說說它的子孫們。
一、Collection的子接口
List:有序(存入和取出的順序一致),元素都有索引(即角標),元素可以重復。
Set:元素不能重復,無序的。
首先講講List。
A、List特有的常見方法(都有一個共性的特點就是可以操作角標)。List接口是可以完成對元素的增刪改查,List接口的實現是通過子類來完成:
現在我們初始化一個List接口:List ll=new ArrayList();
接下來說說List的主要常用的方法。
1、添加(通過索引的位置來添加元素)
void add(index,element); void add(index,Collection) //List特有的取出方式之一 for(inti=0;i
2、刪除(刪除相應索引位置的元素)
Object remove(index);//返回被刪除的元素
3、修改(修改指定索引位置的元素,並返回修改前的元素)
ObjectSet(index,element)//返回被修改的元素
4、獲取:
Object get (index); int IndexOf(object);//返回此列表中第一次出現指定元素的索引,如果此列表不包含該素,則返回-1. int lastIndexOf(object);//返回此列表中最後一次出現指定的元素,如果此列表不包含該元素,則返回-1. List subList(int from,int to);//包含頭,不包含尾,獲取子列表。
測試程序代碼如下:
代碼如下: package com.wq.list; /** * 添加一個課程類,提供課程的選擇 * @author LULEI * */ public class Courses { private String id;//課程序號 private String name;//課名 public Courses(){ } public Courses(String id,String name){ this.setId(id); this.setName(name); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
//測試List的一些方法: package com.wq.list; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class ListTest { //用於存放備選課程的List public List courseToSelect; public ListTest(){ this.courseToSelect=new ArrayList(); } //用於courseToSelect添加備選課程 public void testAdd(){ //創建一個課程的實例,並通過使用add方法,將該實例 //添加到備選課程List中 Courses cr1=new Courses("1", "數據庫"); courseToSelect.add(cr1);//將課程添加到備選課程List中 Courses temp=(Courses)courseToSelect.get(0);//選取List列表中的第一個元素 System.out.println("添加了課程:"+temp.getId()+"."+temp.getName()); Courses cr2=new Courses("2","JAVA"); courseToSelect.add(0, cr2); Courses temp2=(Courses)courseToSelect.get(0); System.out.println("添加了課程:"+temp2.getId()+"."+temp2.getName()); /* * 下面代碼會出現越界的異常 Courses cr3= new Courses("4", "test"); courseToSelect.add(4,cr3); //Courses cr3=(Courses)courseToSelect.get(4); //System.out.println("添加了課程:"+cr3.getId()+"."+cr3.getName()); * */ Courses cr7=new Courses("1", "數據庫"); courseToSelect.add(cr7);//將課程添加到備選課程List中 Courses temp7=(Courses)courseToSelect.get(2);//選取List列表中的第一個元素 System.out.println("添加了課程:"+temp7.getId()+"."+temp7.getName()); //addAll()方法的使用 Courses[] cr3={new Courses("3","高數"),new Courses("4","英語")}; courseToSelect.addAll(Arrays.asList(cr3));//將數組轉換成List集合 Courses temp3=(Courses)courseToSelect.get(3); Courses temp4=(Courses)courseToSelect.get(4); System.out.println("添加了兩門課:"+temp3.getId()+"."+temp3.getName() +temp4.getId()+"."+temp4.getName()); Courses[] cr4={new Courses("5","高等語文"),new Courses("6","數據處理")}; courseToSelect.addAll(2,Arrays.asList(cr4)); //將數組轉換成List集合 Courses temp5=(Courses)courseToSelect.get(2); Courses temp6=(Courses)courseToSelect.get(3); System.out.println("添加了兩門課:"+temp5.getId()+"."+temp5.getName() +temp6.getId()+"."+temp6.getName()); } /** * 創建一個Get方法,用於獲取List中的元素的方法 */ public void testGet(){ int num=courseToSelect.size();//獲取List的長度 System.out.println("可以選擇的課程如下:"); for(int i=0;i