集合Collection和List(一)
阿新 • • 發佈:2019-02-09
一.陣列和集合的區別
二.集合的結構
三.
四.集合的遍歷
Collection c=new ArrrayList();//建立集合
//新增元素
c.add("helleo");
c.add("haokan");
Object[] obj=c.toArray();//集合轉變成陣列
//遍歷
for(int i=0; i<obj.length;i++){
String s=(String) obj[i];//因為集合中沒有Length所以實現向下轉型
System.out.prinln(s.length|+"__"+s)
}
五.迭代器的使用
Collection c=new ArrayList()//建立集合對像 c.add("Hello"); c.add("bianli")//新增集合元素 Itreator it=c.itrerator();//通過集合獲取迭代物件 while(it.hasNext()){ //判斷下一個是否存在元素 String s=(String)it.next();//獲取元素並且移到下一個位置 System.out.prinln(s.length) }
對以上問題的總結
六.Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面。
List的問題
1.List是有序可重複的
List list=new ArrayList();//建立物件 //新增元素 list.add("hello") list.add("world") list.add("java") Iterator it=list.itrator();//通過集合物件獲取迭代器物件 while(it.hasNext()){//判斷是否還有元素 String s=(Stirng) it.next();//獲取元素並移到下一個位置 System.out.println(s); }
List新增物件
public static void main(String[] args) { // 建立集合物件 List list = new ArrayList(); // 建立學生物件 Student s1 = new Student("林黛玉", 18); Student s2 = new Student("劉姥姥", 88); Student s3 = new Student("王熙鳳", 38); // 把學生新增到集合中 list.add(s1); list.add(s2); list.add(s3); // 遍歷 // 迭代器遍歷 Iterator it = list.iterator(); while (it.hasNext()) { Student s = (Student) it.next(); System.out.println(s.getName() + "---" + s.getAge()); } System.out.println("--------"); // 普通for迴圈 for (int x = 0; x < list.size(); x++) { Student s = (Student) list.get(x); System.out.println(s.getName() + "---" + s.getAge()); } }
List的特有功能
public static void main(String[] args) {
// 建立集合物件
List list = new ArrayList();
// 新增元素
list.add("hello");
list.add("world");
list.add("java");
// void add(int index,Object element):在指定位置新增元素
// list.add(1, "android");//沒有問題
// IndexOutOfBoundsException下標越界
// list.add(11, "javaee");//有問題
// list.add(3, "javaee"); //沒有問題
// list.add(4, "javaee"); //有問題
// Object get(int index):獲取指定位置的元素
// System.out.println("get:" + list.get(1));
// IndexOutOfBoundsException
// System.out.println("get:" + list.get(11));
// Object remove(int index):根據索引刪除元素,返回被刪除的元素
// System.out.println("remove:" + list.remove(1));
// IndexOutOfBoundsException
// System.out.println("remove:" + list.remove(11));
// Object set(int index,Object element):根據索引修改元素,返回被修飾的元素
System.out.println("set:" + list.set(1, "javaee"));
System.out.println("list:" + list);
}
List的特有遍歷
package cn.itcast_03;
import java.util.ArrayList;
import java.util.List;
/*
* List集合的特有遍歷功能:
* size()和get()方法結合使用
*/
public class ListDemo2 {
public static void main(String[] args) {
// 建立集合物件
List list = new ArrayList();
// 新增元素
list.add("hello");
list.add("world");
list.add("java");
// 如果元素過多,數起來就比較麻煩,所以我們使用集合的一個長度功能:size()
// 最終的遍歷方式就是:size()和get()
for (int x = 0; x < list.size(); x++) {
// System.out.println(list.get(x));
String s = (String) list.get(x);
System.out.println(s);
}
}
}
package cn.itcast_04;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/*
* 列表迭代器:
* ListIterator listIterator():List集合特有的迭代器
* 該迭代器繼承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。
*
* 特有功能:
* Object previous():獲取上一個元素
* boolean hasPrevious():判斷是否有元素
*
* 注意:ListIterator可以實現逆向遍歷,但是必須先正向遍歷,才能逆向遍歷,所以一般無意義,不使用。
*/
public class ListIteratorDemo {
public static void main(String[] args) {
// 建立List集合物件
List list = new ArrayList();
list.add("hello");
list.add("world");
list.add("java");
// ListIterator listIterator()
ListIterator lit = list.listIterator(); // 子類物件
while (lit.hasNext()) {
String s = (String) lit.next();
System.out.println(s);
}
System.out.println("-----------------");
while (lit.hasPrevious()) {
String s = (String) lit.previous();
System.out.println(s);
}
System.out.println("-----------------");
// 迭代器
Iterator it = list.iterator();
while (it.hasNext()) {
String s = (String) it.next();
System.out.println(s);
}
System.out.println("-----------------");
}
}
public class ListIteratorDemo2 { public static void main(String[] args) { // 建立List集合物件 List list = new ArrayList(); // 新增元素 list.add("hello"); list.add("world"); list.add("java"); // 迭代器遍歷 // Iterator it = list.iterator(); // while (it.hasNext()) { // String s = (String) it.next(); // if ("world".equals(s)) { // list.add("javaee"); // } // } // 方式1:迭代器迭代元素,迭代器修改元素 // 而Iterator迭代器卻沒有新增功能,所以我們使用其子介面ListIterator // ListIterator lit = list.listIterator(); // while (lit.hasNext()) { // String s = (String) lit.next(); // if ("world".equals(s)) { // lit.add("javaee"); // } // } // 方式2:集合遍歷元素,集合修改元素(普通for) for (int x = 0; x < list.size(); x++) { String s = (String) list.get(x); if ("world".equals(s)) { list.add("javaee"); } } System.out.println("list:" + list); } }
棧和佇列
陣列和連結串列