Collection集合概述
1、是单例集合的顶层接口,他表示一组对象,这些对象也称为Collection的元素
2、JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。
集合类体系结构
创建Collection集合的对象
1、多态的方式
2、具体的实现类ArrayList
集合常用方法:
public class CollectionDemo01 {
/*
Collection接口中的常用方法:
boolean add?(E e) : 添加元素。
boolean contains?(Object o): 如果此集合包含指定的元素,则返回 true 。
boolean isEmpty?() : 判断集合是否为空,为空则返回 true 。
boolean remove?(Object o) : 根据元素本身删除集合中对应的内容。
int size?(): 返回此集合中的元素个数。
boolean removeIf(Object o): 根据条件删除集合中的元素
void clear(): 清空集合中的元素
*/
public static void main(String[] args) {
// 1. 基于接口多态创建Collection集合容器
Collection<String> coll = new ArrayList<>();
//2. 往集合中添加3个人名
coll.add("坂井泉水");
coll.add("ZARD");
coll.add("雅·修特拉");
//2.1 获取一下集合的元素个数,做一个输出
System.out.println(coll.size());
//3. 判断当前集合容器中有没有ZARD, 有ZARD就删除
if (coll.contains("ZARD")) {
coll.remove("ZARD");
}
coll.removeIf(s -> s.equals("ZARD"));
//3.1 获取一下集合的元素个数,做一个输出
//4. 判断当前集合是否为空并打印
System.out.println(coll.isEmpty());
//5. boolean removeIf(Object o): 根据条件删除集合中的元素
//需求: 如果集合中的元素包含"雅"字, 那就将该元素从集合中删除
coll.removeIf(s -> s.contains("雅"));
//6. 将集合清空
coll.clear();
//打印集合
System.out.println(coll);
}
}
Collection集合的遍历
迭代器
迭代器,专门用来遍历集合的方式
Iterator iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到。
Iterator常用的方法:
boolean hasNext():判断当前位置是否有元素可以被取出 。
E next():获取当前位置的元素,将迭代器对象移向下一个索引位置。
Colleciton集合的遍历
public class CollectionDemo02 {
public static void main(String[] args) {
//创建集合对象
Collection<String> list = new ArrayList<>();
//添加元素
list.add("Z");
list.add("A");
list.add("R");
list.add("D");
//获得迭代器的对象
//迭代器对象一旦被创建出来,默认指向集合的0索引处
Iterator<String> it = list.iterator();
//用while循环获取元素和判断
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
迭代器中删除的方法
void remove(): 删除迭代器对象当前指向的元素。
public class CollectionDemo05 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Z");
list.add("A");
list.add("R");
list.add("D");
list.add("C");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
if ("C".equals(s)) {
//指向谁就删除谁
iterator.remove();
}
}
System.out.println(list);
}
}
增强For循环
它是JDK5之后出现的,其内部原理是一个Iterator迭代器
实现Iterable接口的类才可以使用迭代器和增强for
简化数组和Collection集合的遍历
- 格式:
for(集合/数组中元素的数剧类型 变量名 : 集合/数组名){
//已经将当前遍历到的元素封装到变量中了,直接使用变量即可}
注意点:
在增强for中修改第三方的值不会修改集合内容
public class MyCollectonDemo1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
//1,数据类型一定是集合或者数组中元素的类型
//2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
//3,list就是要遍历的集合或者数组
for(String str : list){
System.out.println(str);
}
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。