package com.alllist.list;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Muster {
/**
* ----- Collection 接口 -----
* 1.集合类又被称为容器。
* 2.数组的长度是固定的,集合的长度是可变的
* 3.数组和集合的区别:
* 3.1、数组用来存放基本类型的数据
* 3.2、集合用来存放对象的引用
* 4.( Iterator 的 next() 方法返回的是 Object )
* 5.通常遍历集合都是通过迭代器(Iterator)来实现
* @author Administrator
*
*/
public void MyCollection(){
// 实例化集合类对象
Collection<String> list = new ArrayList<String>();
// 向集合添加数据
list.add("a");
list.add("b");
list.add("c");
// 创建迭代器
Iterator<String> it = list.iterator();
// 遍历输出
while(it.hasNext()){ // 判断是否有下一个元素
String str = it.next(); // 获取集合中元素
System.out.println(str);
}
}
/**
* ------ List接口的实现类 -------
* List接口的实现类有 ArrayList与LinkedList
* 1.ArrayList类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问
* 缺点是向指定的索引位置插入对象或删除对象的速度较慢
* 2.LinkedList类采用链表结构保存对象。
* 优点是:便于向集合中插入和删除对象,需要向集合中插入、删除对象时,采用LinkedList类实现的List集合的效率较高
* 但对于随机访问集合中的对象,使用效率比List较低
* 3.与数组相同,集合的索引也是从 0 开始
* @author Administrator
*
*/
public void MyList(){
List<String> list = new ArrayList<String>();//创建集合对象
list.add("a");//向集合添加元素
list.add("b");
list.add("c");
//获得0-2之间的随机数
int i = (int) (Math.random()*(list.size()-1));
System.out.println("随机获取数组中的元素:"+list.get(i));
list.remove(2); //将指定索引位置的元素从集合中移除
System.out.println("将索引是'2'的元素从数组移除后,数组中的元素是:");
for (int j = 0; j < list.size(); j++) { //循环遍历集合
System.out.println(list.get(j));
}
}
public static void main(String[] args) {
Muster m = new Muster();
m.MyCollection();
System.out.println("---------------");
m.MyList();
}
}