集合
集合的框架介绍
collection接口
定义的是所有单列集合中共性的方法
所有的单列集合都可以使用共性的方法
没有带索引的方法
list接口
1、有序的集合
2、运行存储重复元素
3、元素有索引,可以使用普通的for循环遍历
vector集合
ArrayList集合
LinkedList集合
set接口
1、不允许存储重复的元素
2、没有索引,不能使用普通的for循环遍历。
1、TreeSet集合(无序)
2、HashSet集合(无序)
2.1、LinkedHashSet集合(有序)
collection常用功能
public boolean add(E e):添加对象
public void clear():清空集合
public boolean remove(E e):删除给定的对象
public boolean contains(E e):判断对象是否存在
public boolean isEmpty():判断集合是否空
public int size():集合元素个数
public object[] toArray():把集合中的元素,存储到数组中
import java.util.ArrayList;
import java.util.Collection;
public class CollectionExercise {
public static void main(String[] args) {
// demoOne();
// demoTwo();
demoThree();
}
private static void demoThree() {
Collection<String> collection = new ArrayList<String>();
// System.out.println(collection);
collection.add("盖伦");
collection.add("亚索");
Object[] array = collection.toArray();
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
private static void demoTwo() {
Collection<String> collection = new ArrayList<String>();
System.out.println(collection);
collection.add("剑圣");
System.out.println(collection.remove("不存在"));
System.out.println(collection);
System.out.println(collection.remove("剑圣"));
System.out.println(collection);
}
private static void demoOne() {
// 创建集合对象,可以使用多态
Collection<String> collection = new ArrayList<String>();
System.out.println(collection); // 重写toString()方法
collection.add("盖伦");
collection.add("亚索");
System.out.println(collection);
}
}
关键理解:Collection
Iterator迭代器
Iterator接口
在取元素之前先判断集合中有没有元素,如果有,就把这个元素取出,继续判断,直到把集合中的所有元素全部取出。
1、boolean hasNext():判断集合有没有下一个元素
2、E next():返回迭代的下一个元素,取出集合中的下一个元素
Collection接口中有一个方法iterator()返回的就是迭代器的实现类对象。
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class DemoOne {
public static void main(String[] args) {
demoOne();
}
private static void demoOne() {
Collection<String> collection = new HashSet<>();
// Collection<String> collectionOne = new ArrayList<>();
collection.add("锐雯");
collection.add("亚索");
collection.add("盖伦");
collection.add("剑圣");
collection.add("剑魔");
collection.add("剑魔");
// iterator接口也有泛型,和集合的泛型相同
// 多态
Iterator<String> integer = collection.iterator();
// for(Iterator<String> iterator = collection.iterator();integer.hasNext();){
// // String s = integer.next();
// System.out.println(integer.next());
// }
while (integer.hasNext()){
// String s = integer.next();
System.out.println(integer.next());
}
}
}
注意理解:Iterator
for each循环
专门用来遍历数组和集合的,它的内部原理其实就是Iterator迭代器,在遍历的过程中,不能对集合中的元素进行增删操作。
foreach循环必须有被遍历的目标,目标只能是collection或者数组。
写在前面:
public interface Collectionextends Iterable
public interface Iterable实现这个接口运行对象成为“foreach”
import java.util.Collection;
import java.util.HashSet;
public class ForEachExercise {
public static void main(String[] args) {
demoOne();
demoTwo();
}
private static void demoTwo() {
Collection<String> collection = new HashSet<>();
collection.add("锐雯");
collection.add("亚索");
collection.add("盖伦");
collection.add("剑圣");
collection.add("剑魔");
collection.add("剑魔");
for (String s:collection) {
System.out.println(s);
}
}
private static void demoOne() {
int [] array = {1,2,3,4,5};
for (int i:array){
System.out.println(i);
}
}
}

浙公网安备 33010602011771号