1.什么是集合?
对一些数据的存储就叫做集合,相比于数组,这是一种动态的集合。
1.可以动态的保存任意多个对象
2.提供一些动态操作集合的方法比如:add ,remove ,set ,get 等。
3.使用集合更加方便,提高代码编写效率。
2.集合的继承关系
Collection
Map
3.对集合的一些基本操作
1. 创建一个arraylist集合。
ArrayList arrayList = new ArrayList();
2. 追加元素。
arrayList.add();
3. 删除index位置的元素
arrayList.remove();
4. 直接删除某个元素
arrayList.remove();
5. 元素是否包含在arraylist 中
arrayList.contains()
6. 获取集合的元素个数
arrayList.size()
7. 判断集合是否为空
arrayList.isEmpty()
8. 清空集合
arrayList.clear();
9. 添加多个元素
arrayList.addAll();
10. 是否包含一个集合
arrayList.containsAll();
11. 删除多个元素
arrayList.removeAll();
import java.util.ArrayList;
public class main {
@SuppressWarnings({"all"})
public static void main(String [] args)
{
// 创建一个arraylist集合。
ArrayList arrayList = new ArrayList<>();
// 追加元素。
arrayList.add("Start");
arrayList.add(123);
arrayList.add(3.14159);
System.out.println(arrayList);
// 删除index位置的元素
arrayList.remove(2);
System.out.println(arrayList);
// 直接删除某个元素
arrayList.remove("Start");
System.out.println(arrayList);
// 元素是否包含在arraylist 中
System.out.println(arrayList.contains(123));
// 获取集合的元素个数
System.out.println(arrayList.size());
// 判断集合是否为空
System.out.println(arrayList.isEmpty());
// 清空集合
arrayList.clear();
System.out.println(arrayList);
// 添加多个元素
ArrayList arrayList2 = new ArrayList();
arrayList2.add("good");
arrayList2.add(12345);
arrayList2.add(3.444222);
arrayList.addAll(arrayList2);
System.out.println(arrayList);
// 是否包含一个集合
boolean b=arrayList.containsAll(arrayList2);
System.out.println(b);
// 删除多个元素
arrayList.removeAll(arrayList2);
System.out.println(arrayList);
}
}
4.集合迭代器的使用
1.什么是迭代器?
我的说法
就是想办法遍历集合元素。
百度说法更加专业
迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。
2.while类型的迭代器遍历元素
比如如下例子
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class main {
@SuppressWarnings({"all"})
public static void main(String [] args)
{
// 创建集合
Collection col = new ArrayList();
col.add(new Person("fanren", 2341));
col.add(new Person("qingqing", 4422));
col.add(new Person("chado", 2344));
// 得到集合的迭代器
Iterator it = col.iterator();
// 判断it指向的是否为空
while(it.hasNext())
{
// 如果不为空,就直接输出元素。
System.out.println(it.next());
}
}
}
class Person{
private double salary;
private String name;
public Person(String name,double salary)
{
this.name=name;
this.salary=salary;
}
@Override
public String toString() {
return this.name+"\t"+this.salary;
}
}
3.while迭代器分如下几步
1.得到集合的迭代器
Iterator it = col.iterator();
2.判断it指向的是否为空
while(it.hasNext())
{
3.如果不为空,就直接输出元素。
System.out.println(it.next());
}
4.for循环的迭代器遍历元素。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class main {
@SuppressWarnings({"all"})
public static void main(String [] args)
{
// 创建集合
Collection col = new ArrayList();
col.add(new Person("fanren", 2341));
col.add(new Person("qingqing", 4422));
col.add(new Person("chado", 2344));
// for循环遍历
// 从集合col中取元素放到ob中
for(Object ob : col)
{
// 直接输出。
System.out.println(ob);
}
}
}
class Person{
private double salary;
private String name;
public Person(String name,double salary)
{
this.name=name;
this.salary=salary;
}
@Override
public String toString() {
return this.name+"\t"+this.salary;
}
}
for类型的迭代器底层还是while类型的迭代器。