JAVA List用法php
1.List中能夠添加任何對象,包括本身定義的類。java
//定義一個Person類數組
class Person{數據結構
……spa
}線程
Person person1 = new Person();orm
Person person2 = new Person();對象
List list = new ArrayList();索引
//添加對象接口
list.add(person1);
list.add(person2);
//取對象
Person person3 = (Person)list.get(0);//注意:這裏必定要強制類型轉換,由於List中取出的對象都是Object類型的。
2.List是一個接口,不能實例化,須要實例化一個ArrayList或者LinkedList
List myList = new ArrayList();
3.使用myList.add(任何對象);能夠添加任何對象
4.取值的時候myList.get(索引);取出來的值都是Object,使用時須要類型轉換。
5.能夠用Iterator迭代器對List中的元素進行迭代操做。
List集合中的對象按照必定的順序存放,裏面的內容能夠重複。
List接口實現的類:ArrayList(實現動態數組)、Vector(實現動態數組)、LinkedList(實現鏈表)、Stack(實現堆棧)。
1.java.util.ArrayList類
java.util.ArrayList類實現一個可增加的動態數組,平時用得最多的就是add()方法。使用該方法向集合內添加對象,而且這些對象按照必定的順序排列,內部原理是數組實現的,所以處理數據量很大時,不建議使用。
List a = new ArrayList();
a.add("a");
a.add("b");
a.add("c");
//使用Iterator迭代器遍歷出集合的元素並打印
for(Iterator i = a.iterator();i.hasNext();)
{
String str = (String)i.next();
System.out.printIn(str);
}
2.java.util.Vector(向量)類
java.util.Vector類與ArrayList相似的也是實現一個動態數組,該向量能夠隨意的增加以及存放等多的對象。
List a = new Vector();
a.add("a");
a.add("b");
a.add("c");
for(Iterator i = a.iterator();i.hasNext();)
{
String str = (String)i.next();
System.out.printIn(str);
}
3.java.util.LinkedList類實現鏈表
能夠初始化爲空或者已經存在的集合,一般使用如下方法:
add();向鏈表末尾添加對象
addFirst();在鏈表開頭添加對象
addLast();在鏈表末尾添加對象--這個和add()同樣
getFirst();獲得鏈表開頭的對象
getLast();獲得鏈表末尾的對象
注意:該類提供了隨機訪問列表中的元素的方法.
LinkedList a = new LinkedList();
a.add("a");
a.add("b");
a.add("c");
for(Iterator i = a.iterator();i.hasNext();)
{
String str = (String)i.next();
System.out.printIn(str);
}
4. java.util.Stack類實現了堆棧數據結構,即按照先進後出的原則存放數據,建立時只能爲空,使用push()方法進行添加對象。
Stack a = new Stack();
a.push("a");
a.push("b");
a.push("c");
for(Iterator i = a.iterator();i.hasNext();)
{
String str = (String)i.next();
System.out.printIn(str);
}
java list用法示例詳解
List:元素是有序的(怎麼存的就怎麼取,順序不會亂),元素能夠重複。
ArrayList:底層的數據結構使用的是數組結構,特色是查詢很快,但增刪較慢,線程不一樣步。
LinkedList:底層的數據結構是鏈表結構,特色是查詢慢,增刪較快。
Vector:底層是數組數據結構,線程同步,不管查詢仍是增刪都很慢,被ArrayList替代了
ArrayList刪除指定位置的元素
ArrayList a = new ArrayList();
a.add("javaScript");
a.add("php");
a.add("flash");
//刪除第2個位置的元素
a.remove(1);
ArrayList修改指定角標的元素 set(int index,E element),返回的是修改的那個元素
a.set(2,"C++");
ArrayList查找指定位置的元素
get(int index) 返回列表中指定位置的元素
subList(int fromIndex,int toIndex) 返回列表中指定的fromIndex(包括)和toIndex(不包括)之間的部分元素
System.out.println(a.get(2)); //獲取指定角標的元素,能夠用該方法遍歷集合中全部的元素。
System.out.println(a.subList(1,3)); // 得到集合中某一部分的元素,包含頭不包含尾
java迭代器的使用
ListIterator li = a.listIterator();
while(li.hasNext())
{
if(li.next().equals("C++")) // 這句是java裏面的字符串比
li.set("C#");
}