集合的概述:
集合是java中提供的一种容器,可以用来储存多个引用数据类型数据的容器。
集合和数组的区别:
数组的长度是固定的,集合的长度是可变的。
数组中存储的是同一种类型的元素,而集合可以存储任意类型数据。
集合存储的都是引用数据类型。如果想存储基本数据类型需要存储对应的包装类型。
Collection集合 常用功能
public boolean add()把给定的对象添加到当当前集合中
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
}
public void clear()清空所有集合中的元素
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//清空集合中的所有元素
collection.clear();
}
public int size()返回集合中元素的个数
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//返回集合中元素的个数
System.out.println(collection.size())
}
public boolean remove() 把给定的对象在当前集合中删除
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//把给定的对象在当前集合中删除
collection.remove("范冰冰");
}
public boolean contains()判断当前集合中是否包含给定的对象
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//判断集合中是否包含王冰冰这个元素
boolean b=collection.contains("王冰冰");
//如果包含返回true,不包含返回false
System.out.println(b);
}
public boolean isEmpty()判断当前集合是否为空
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//判断该集合是否还有元素
boolean f=collcetion.isEmpty();
//如果有返回false,没有返回true
System.out.println(f);
}
public Obiect [ ] toArray() 把集合中的元素,存储到数组中
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//把集合中的元素存储到一个数组中
Object [] o=collection.toArray();
//打印输出
System.out.printiln(o);
}
Iterartor迭代器
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//获取该集合对应的迭代器对象
Iterator<String> it=col.iterator();
//如果有,就取出来
while(it.hasNext()){
String s=it.next();
System.out.println(s)
}
}
迭代器常见问题
1.在进行集合获取元素时,如果集合中已经没有元素可以迭代了,还据徐使用迭代器的next方法,将会抛出 java.util.NoSuchElementException 没有集合元素异常
解决办法:如果还需要重新迭代,那么就重新获取一个新的迭代器对象进行操作
2.在进行集合元素迭代时,如果添加或移除集合中的元素,将无法继续迭代,将会抛出 ConcurrentModificationException并发修改异常
增加for循环
增强for循环(也称for each循环)是JDK1.5以后出来的⼀个⾼级 for循环,专⻔⽤来遍历数组和集合的。它的内部原理其实是 个Iterator迭代器,所以在遍历的过程中,不能对集合中的元 素进⾏增删操作。
它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历过程中对集合元素进行增删操作。
public static void main(String[] args) {
//创建带有String泛型的集合
Collection<String> collection=new ArrayList<>();
collection.add("李冰冰");
collection.add("范冰冰");
collection.add("王冰冰");
//曾庆for循环遍历集合
for(String str : collection){
System.out.println("取出来的元素"+str)
}
}
public static void main(String[] args) {
//创建一个字符串数组
String [] arr=new String [4];
arr[0] ="范冰冰";
arr[1] ="李冰冰";
arr[2] ="赵薇";
arr[3] ="林心如";
//增强for遍历
for(String str : arr){
System.out.println("元素:"+str);
}
}