Java集合框架概述
-
Java集合也称为容器,可以动态地把多个对象的引用放到容器中
-
数据存储多个数据的特点:
- 一旦初始化以后,其长度就确定了
- 数组一旦定义好,其类型也就确定了,也就只能操作指定类型的数据了,比如String[] arr;int[] arr1
-
数组存储多个数据的缺点:
- 一旦初始化后,长度便不可修改
- 数组中提供的方法有限,效率也不高
- 获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
- 数组存储数据的特点:有序、可重复;对于无序、不可重复的需求,不能满足
-
Java集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组
-
Java集合可以分为Collection和Map两种体系
- Collection接口:单列数据,定义了存取一组对象的方法的集合
- List接口:元素有序、可重复的集合--------相当于“动态”数组
- 实现类包括ArrayList类、LinkedList类、Vector类
- Set:元素无序、不可重复的集合
- 实现类包括hashSet类、LinkedHashSet类、TreeSet类
- List接口:元素有序、可重复的集合--------相当于“动态”数组
- Map接口:双列数据,保存具有映射关系“key-value对”的集合
- HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
- Collection接口:单列数据,定义了存取一组对象的方法的集合
Collection接口方法
- add(Object e):将数据e添加到集合中
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100+"分");//自动装箱
coll.add("时间是:"+new Date());
System.out.println(coll);//[我, learn, java, 100分, 时间是:Wed Nov 18 17:31:20 CST 2020]
}
}
- size():获取集合元素个数
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100+"分");//自动装箱
coll.add("时间是:"+new Date());
//size():获取集合元素个数
System.out.println(coll.size());//5
}
}
- addAll(Collection coll1):将coll1中的全部元素添加到当前的集合中
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100+"分");//自动装箱
coll.add("时间是:"+new Date());
//addAll(Collection coll1):将coll1中的全部元素添加到当前的集合中
Collection coll1=new ArrayList();
coll1.add(200);
coll1.add(300);
coll1.add("你也是");
coll.addAll(coll1);
System.out.println(coll);//[我, learn, java, 100分, 时间是:Wed Nov 18 17:38:09 CST 2020, 200, 300, 你也是]
}
}
- coll.clear():清空集合元素
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100+"分");//自动装箱
coll.add("时间是:"+new Date());
//addAll(Collection coll1):将coll1中的全部元素添加到当前的集合中
Collection coll1=new ArrayList();
coll1.add(200);
coll1.add(300);
coll1.add("你也是");
coll.addAll(coll1);
System.out.println(coll);
//clear():清空集合元素
coll1.clear();
System.out.println(coll1);//[]
}
}
- isEmpty():判断集合是否为空
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100+"分");//自动装箱
coll.add("时间是:"+new Date());
//addAll(Collection coll1):将coll1中的全部元素添加到当前的集合中
Collection coll1=new ArrayList();
coll1.add(200);
coll1.add(300);
coll1.add("你也是");
coll.addAll(coll1);
System.out.println(coll);
//clear():清空集合元素
coll1.clear();
System.out.println(coll1);
//isEmpty():判断集合是否为空
System.out.println(coll1.isEmpty());//true
}
}
- contains(Object obj):判断当前集合是否包含元素obj
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
//contains(Object obj):判断当前集合是否包含元素obj
//判断时会调用obj对象所在类的equals()
System.out.println(coll.contains("我"));//true
System.out.println(coll.contains("你"));//false
System.out.println(coll.contains(new String("我")));//true
}
}
- containsAll(Collection coll1):判断形参coll1中的所有元素是否都在当前集合中
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
//containsAll(Collection coll1):判断形参coll1中的所有元素是否都在当前集合中
Collection coll1 = Arrays.asList("我","java");
System.out.println(coll.containsAll(coll1));
}
}
- remove(Collection obj):从当前对象中移除obj元素
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
System.out.println(coll);//[我, learn, java, 100分, 时间是:Wed Nov 18 18:01:05 CST 2020]
//remove(Collection obj):从当前对象中移除obj元素
coll.remove("时间是:" + new Date());
System.out.println(coll);//[我, learn, java, 100分]
}
}
- removeAll(Collection coll1):差集:从当前集合中移除coll1中的所有元素
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
System.out.println(coll);
Collection coll1=Arrays.asList("时间是:" + new Date(),"learn");
//removeAll(Collection coll1):差集:从当前集合中移除coll1中的所有元素
coll.removeAll(coll1);
System.out.println(coll);
}
}
- retainAll(Collection coll1):交集:获取当前集合与coll1集合的交集,并返回给当前集合
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
System.out.println(coll);//[我, learn, java, 100分, 时间是:Wed Nov 18 18:08:48 CST 2020]
Collection coll1=Arrays.asList("learn","时间是:" + new Date());
//retainAll(Collection coll1):交集:获取当前集合与coll1集合的交集,并返回给当前集合
coll.retainAll(coll1);
System.out.println(coll);//[learn, 时间是:Wed Nov 18 18:08:48 CST 2020]
}
}
- equals():当前集合和形参集合元素都相同时返回true
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
System.out.println(coll);
Collection coll1=Arrays.asList("learn","时间是:" + new Date());
//equals():当前集合和形参集合元素都相同时返回true
System.out.println(coll.equals(coll1));
}
}
- hashCode():返回当前对象的哈希值
package www.bh.c.collectiontest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
System.out.println(coll);//[我, learn, java, 100分, 时间是:Wed Nov 18 18:14:23 CST 2020]
System.out.println(coll.hashCode());//1757655569
}
}
- 集合----->数组:toArray()
- 数组----->集合:调用Arrays类的静态方法asList()
package www.bh.c.collectiontest;
import java.util.*;
public class Test01 {
public static void main(String[] args) {
//add(Object e):将数据e添加到集合中
Collection coll = new ArrayList();
coll.add("我");
coll.add("learn");
coll.add("java");
coll.add(100 + "分");//自动装箱
coll.add("时间是:" + new Date());
//集合----->数组:toArray()
Object[] arr=coll.toArray();
for (int i = 0; i <arr.length; i++) {
System.out.println(arr[i]);//
}
//数组----->集合:调用Arrays类的静态方法asList()
List<Object> list=Arrays.asList(new String[]{"1","2","3"});
System.out.println(list);//[1, 2, 3]
}
}