jdk1.5定义泛型
目的:使集合中的数据类型保持一致性
格式 Collection = new ArrayList();
jdk.17后
Collection coll = new ArrayList<>();
Collection是接口,不能创建对象,使用实现类创建对象
List: ArrayList 有序,可重复
set集合:不能把相同的对象放到集合两次,无序
add执行之前,判断集合中所有元素是否和当前元素的equals返回值为true
Set set = new HashSet<>();
对象类型的set数组需要在实体类中使用HashSet方法
isEmpty();数组为空,返回true
add();添加元素
size();元素个数
contains();判断元素是否在集合中
remove(2);删除元素 String类型2表示下标
clear();清空
集合和集合之间的方法:
c1.addAll(c2);//把c2的元素添加到c1集合中
boolean b = c1.containsAll(c2);//c1是否包含c2集合
boolean b2 = c1.removeAll(c2);/删除
遍历集合两种方法
1.迭代器
2.使用增强for循环
public class Demo3 {
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
c.add("hello");
c.add("abc");
c.add("abc222");
//使用迭代器
//1.获取迭代器
Iterator<String> it = c.iterator();
//2.判断集合是否还有元素
while(it.hasNext()){
String str = it.next();
System.out.println(str);
//3.获取元素
}
//使用增强for循环(JVM解析成迭代器)
for(String str:c){
System.out.println(str);
}
}
}
集合转换成数组:两种方法
1.toArray()转换成object类型数组
2.toArray()转换成String类型数组
list.toArray(new String[0]);//重新创建数组
list.toArray(new String[list.size()]);//不需重新创建
public class Demo {
public static void test1(){
//集合转换成数组
List<String> list = new ArrayList<>();
list.add("abc");
list.add("edfd");
list.add("abcd");
list.add("hello");
//toArray()转换成object类型数组
Object[] obj = list.toArray();
for(int i = 0;i<obj.length;i++){
String str = (String)obj[i];
System.out.println(str);
}
System.out.println("------------------");
//list.toArray(T[] t)
String[] strArray =
//list.toArray(new String[0]);//重新创建数组
list.toArray(new String[list.size()]);//不需重新创建
for(String str:strArray){
System.out.println(str);
}
System.out.println("-------------------");
Arrays.sort(strArray);
for(String str:strArray){
System.out.println(str);
}
}
public static void main(String[] args) {
test2();
}
}