目录
一.泛型
1.1 泛型方法与可变参数
在泛型方法中,泛型也可以定义可变参数类型。
语法结构:
public <泛型表示符>void showMag(泛型表示符 ... args){ } |
//泛型方法定义可变参数
public <T> void m(T...args){
for (T t:args){
System.out.println(t);
}
}
text t1=new text();
String[] arr=new String[]{"a","b","c"};
t1.m(arr);
二.容器
单例集合:将数据一个一个的进行存储。
双例集合:基于Key与Value的结构存储数据。
2.1 单例集合的使用
2.1.1 Collection接口介绍
Collection是单例集合根接口,两个子接口是List,Set接口。
Collection接口中的抽象方法:
2.2 List接口介绍
特点:有序,可重复。
常用方法:
2.3 ArrayList容器类
ArrayList容器类是List接口的实现类,是List储存特征的具体实现。
ArrayList使用数组实现的储存。
1 添加元素
public class textRongqi {
public static void main(String[] args) {
//实例化ArrayList容器类
List<String> l1=new ArrayList<>();
//添加元素
boolean f1=l1.add("a");
System.out.println(f1);
l1.add(0,"b");
System.out.println(l1);
}
}
2 获取元素
System.out.println(l1.get(0));
System.out.println(l1.get(1));
3.删除元素
String v1=l1.remove(1);//返回被删除的元素
System.out.println(v1);
for (String l:l1){
System.out.println(l);
}
}
4.删除指定元素
l1.add("c");
l1.add("d");
boolean f2=l1.remove("c");//返回true
System.out.println(f2);
boolean f3=l1.remove("e");//没有该元素,返回false
System.out.println(f3);
for (String l:l1){
System.out.println(l);//容器里还有b,d
}
5.替换元素
//替换元素
String v2=l1.set(0,"a");//返回被替换的元素b
System.out.println(v2);
for (String l:l1){
System.out.println(l);//容器里还有a,d
}
6.清空容器
//清空容器
l1.clear();
System.out.println(l1.size());//变为0
7.判断容器是否为空
//判断容器是否为空
boolean f4=l1.isEmpty();
System.out.println(f4);//返回true
8.判断容器中是否包含指定元素
//判断容器里是否包含指定元素
l1.add("a");
l1.add("b");
l1.add("c");
boolean f5=l1.contains("a");
boolean f6=l1.contains("f");
System.out.println(f5);//返回true
System.out.println(f6);//返回false
9.查找元素的位置
9.1 查找元素第一次出现的位置
//查找元素第一次出现的位置
l1.add("a");
int i1=l1.indexOf("a");
System.out.println(i1);//返回0
9.2 查找元素最后一次出现的位置
//查找元素最后一次出现的位置
int i2=l1.lastIndexOf("a");
System.out.println(i2);//返回3
10. 将单例集合转换为数组
10.1 转换为Object数组
//将单例集合转换为Object数组
String[] arr1=(String[]) l1.toArray();
for (int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}//报错
原因:做强制转换的时候需要将元素一个一个转,不可以把数组里面的元素全部做强制转换
//将单例集合转换为Object数组
Object[] arr1=l1.toArray();
for (int i=0;i<arr1.length;i++){
String str=(String) arr1[i];
System.out.println(str);//返回a,b,c,a
}
将元素一个一个转换。
10.2 将单例集合转变为指定类型的数组
//将单例集合转变为指定类型的数组
String[] arr2=l1.toArray(new String[l1.size()]);//不做强制转换,给数组开辟空间
for (String a:arr2){
System.out.println(a);
}
11.容器的交集操作
//容器的交集操作
List<String> l2=new ArrayList<>();
l2.add("c");
l2.add("d");
boolean b1=l2.retainAll(l1);//有相等的元素,返回true
System.out.println(b1);
12 容器的差集操作
//容器的差集操作
List<String> l3 = new ArrayList<>();
List<String> l4 = new ArrayList<>();
l3.add("a");
l3.add("b");
l3.add("c");
l4.add("a");
l4.add("b");
boolean bb1 = l3.removeAll(l4);
System.out.println(l4);//返回被移走的元素[a,b],相差的元素
for (String a : l3) {
System.out.println(a);//返回c
}
2.4 Vector容器类
Vector的使用和ArrayList是相同的,因为他们都实现了List接口,对List接口中的抽象方法做了具体实现。
//实例化Vector
List<String> list1=new Vector<>();
list1.add("doudou");
list1.add("weibin");
for (int i=0;i<list1.size();i++){
System.out.println(list1.get(i));
}