Collection(集合)
Collection接口
Collection接口是层次结构中的根接口,构成Collection的单位称为元素。通常不能直接使用,List与Set接口都继承了Collection接口,这些方法对他们都是通用的
add() 添加
remove() 删除
is.Empty() 判断当前集合是否为空,返回boolean
iterator() 返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象
size() 获取该集合中元素的个数
集合的体系:
———-| Collection 单列集合 的根接口
—————-| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。
——————–| ArrayList 底层是维护了一个Object数组实现 的, 特点: 查询速度快,增删慢。
什么时候使用ArrayList: 如果目前的数据是查询比较多,增删比较少的时候,那么就使用ArrayList存储这批数据。 比如 :高校的 图书馆——————–| LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。
——————–| Vector(了解即可)————–| Set
如果是实现了Set接口的集合类,该集合类具备的特点: 无序,不可重复。有序: 集合的有序不是指自然顺序,而是指添加进去的顺序与元素出来的顺序是一致的。
List的使用
List接口中特有方法:
添加
add(int index, E element)
addAll(int index, Collection<? extends E> c)
获取:
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
subList(int fromIndex, int toIndex)
修改:
set(int index, E element)
迭代
listIterator()
List接口中特有的方法具备的特点: 操作的方法都存在索引值。
只有List接口下面的集合类才具备索引值。其他接口下面的集合类都没有索引值。
实例1:
package list;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add(1, "赵本山"); // 把元素添加到集合中的指定索引值位置上。
list.add("狗娃");
list.add("狗剩");
list.add("铁蛋"); //把元素添加到集合的末尾处。
list.add("狗娃");
list2.add("本山");
list2.add("小沈阳");
list.addAll(2,list2); //把list2的元素添加到list集合指定索引值的位置上。
// 获取的方法
System.out.println("get方法获取元素:"+list.get(1)); //根据索引值获取集合中的元素
//使用get方法遍历集合的元素:
for (int i = 0; i < list.size() ; i++) {
System.out.print(list.get(i)+",");
}
System.out.println("找出指定元素第一次出现在集合中 的索引值:"+ list.indexOf("本山"));
System.out.println("找指定的元素最后一次出现在集合中的索引值:"+list.lastIndexOf("狗娃"));
List subList = list.subList(1, 3); //指定开始与结束的索引值截取集合中的元素。
System.out.println("子集合的元素是:"+ subList);
list.set(3, "赵本山"); //使用指定的元素替换指定索引值位置的元素。
System.out.println("集合的元素:"+list);
}
}
/*
get方法获取元素:赵本山
狗娃,赵本山,本山,小沈阳,狗剩,铁蛋,狗娃,找出指定元素第一次出现在集合中 的索引值:2
找指定的元素最后一次出现在集合中的索引值:6
子集合的元素是:[赵本山, 本山]
集合的元素:[狗娃, 赵本山, 本山, 赵本山, 狗剩, 铁蛋, 狗娃]
*/
Collection的迭代
package Demo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demo8 {
public static void main(String[] args) {
Collection<String> c = new ArrayList<String>();
String[] name = {
"1","2","3","4","5","6"
};
for(int i=0;i<name.length;i++){
c.add(name[i]);
}
Iterator<String> iterable = c.iterator();
while(iterable.hasNext()){
String str = (String)iterable.next();
System.out.println(str);
}
}
}