Collection体系
Collection 是所有单列集合的祖宗类,它规定的所有方法(功能)是全部单列集合都会继承的
常用方法
public class CollectionDemo1 {
public static void main(String[] args) {
Collection<String> c = new ArrayList<>(); //多态
//public boolean add (E o): 添加元素 ,成功返回true
System.out.println(c.add("str"));
//public void clear(): 清空集合中的所有元素
c.clear();
System.out.println(c);
//public boolean isEmpty(): 判断集合是否为空,是则返回true
System.out.println(c.isEmpty());
//public int size() : 返回集合的大小
System.out.println(c.size());
//public boolean contains(Object obj): 判断集合中是否包含某个元素
System.out.println(c.contains("A"));
//public boolean remove(E o): 删除某个元素。如果有多个重复元素,默认删除第一个元素
System.out.println(c.remove("java"));
//public Object[] toArray(): 把集合装换成数组
Object[] strArr = c.toArray();
System.out.println(Arrays.toString(strArr));
//转换成String数组
String[] arr = c.toArray(new String[c.size()]);
System.out.println(Arrays.toString(arr));
System.out.println("---------------------");
// 把一个集合中的数据全部倒入到另一个集合中去
Collection<String> c1 = new ArrayList<>();
c1.add("java1");
c1.add("java2");
Collection<String> c2 = new ArrayList<>();
c2.add("java3");
c2.add("java4");
c1.addAll(c2); // 把C2集合的全部数据 倒入到c1集合中去
System.out.println(c1);
System.out.println(c2);
}
}
Collection 遍历
遍历集合的专用方式(数组没有迭代器),在JAVA中迭代器的代表是iterator
迭代器
调用集合的iterator方法 获得一个迭代器对象 ,默认在集合的第一个元素位置上
hasNext() 返回布尔值,判断当前位置是否有数据
next() 取出当前位置数据,并向下移动一位索引
Iterator<String> it = lists.iterator();
while (it.hasNext()){
String el = it.next();
System.out.println(el);
}
注意:每次调用hasNext 都应只调用一次Next 防止索引越界
增强for
public static void main(String[] args) {
Collection<String> lists = new ArrayList<>();
lists.add("小张");
lists.add("小王");
lists.add("小李");
lists.add("小陈");
lists.add("小刘");
System.out.println(lists);
// 遍历集合
for (String name:lists){
System.out.println(name);
}
String[] names = {"a","b","c","d"};
//遍历数组
for (String name:names){
System.out.println(name);
}
lambda表达式
public static void main(String[] args) {
Collection<String> names = new ArrayList<>();
names.add("用户a");
names.add("用户b");
names.add("用户c");
names.add("用户d");
names.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
// 简化
names.forEach((String s) -> {
System.out.println(s);
});
// 再简化
names.forEach((String s) -> System.out.println(s));
// 最终简化
names.forEach(System.out::println);
}