泛型
标识着集合中储存元素的数据类型
写法:<数据类型(泛型)>
泛型的好处:
1.保证数据的安全性(提示你方法中传入参数类型)
2.避免进行向下转型(类型强转)
3.将运行时的错误 转化到编译时报错
//创建一个集合 保存 a b c d //E 泛型 Element(元素) //注意:前后泛型的类型要一致(如果要填的话) //jdk1.7 菱形泛型 //后面泛型可以不填 默认跟前面泛型类型一直 ArrayList<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); //迭代器遍历 //迭代器泛型表示 集合中保存元素的类型 Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String string = (String) iterator.next(); System.out.println(string); }
2.// 创建集合 保存3学生
// 获取集合中的第0个学生 并打印姓名
ArrayList list = new ArrayList<>();
list.add(new Student(“gorilla1”,20));
list.add(new Student(“gorilla2”,25));
list.add(new Student(“gorilla3”,30));
Student student = list.get(0);
System.out.println(student.getName());
3.//创建泛型类的对象
Worker worker = new Worker<>();
worker.setW(“gorilla”);
System.out.println(worker.getW());
worker.fun(“咱们工人有力量”);
Worker.fun2(“有力量”);
4.//多参数方法 int … num
//可以接受多个int类型值 相当于参数是个数组
//调用方式:
//1.传入 多个值 用逗号隔开
//2.直接传入数组
//注意:多参数 方法列表放在最后
public static void print(int … num) {
//遍历
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
//调用多参数方法
print(1,2,3,4,5);
int[] array = {1122,34,23,4,567,43};
print(array);
5.异常
// 创建一个字符串数组 保存三个名字
// 将数组 转成集合
// 添加一个名字
String[] array3 = {“gorilla”,”dasa”,”sdads”};
List list3 = Arrays.asList(array3);
System.out.println(list3);
//UnsupportedOperationException
//不支持操作异常
//注意:该方法 转成集合后 不能对集合进行长度修改
// list3.add(“sas”);
// System.out.println(list3);
//此方法意义在于 可以使用集合类的方法
boolean b = list3.contains(“gorilla”);
System.out.println(b);
6.删除的两种方式
1.循环删除
ArrayList list2 = new ArrayList<>();
//循环删除”b”
for (String string : list) {
if (string.equals(“b”)) {
continue;
}
list2.add(string);
}
System.out.println(list);
System.out.println(list2);
2.//删除 (使用迭代器的删除方式
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
String string = (String) iterator.next();
if (string.equals(“b”)) {
//删除 (使用迭代器的删除方式
iterator.remove();
}
}
System.out.println(list);
7.排序
/*
* 创建集合 保存三个学生
* 按年龄降序 排序
*/
ArrayList list = new ArrayList<>();
list.add(new Student(“gorilla1”,10));
list.add(new Student(“gorilla2”,20));
list.add(new Student(“gorilla3”,35));
list.add(new Student(“gorilla4”,30));
list.add(new Student(“gorilla5”,15));
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
if (list.get(i).getAge() > list.get(j).getAge()) {
Student student = list.get(i);
list.set(i, list.get(j));
list.set(j, student);
}
}
}
8.Set集合
Set集合(无序 无下标 不重复)
HashSet去重
//创建Set集合 添加 a a b b c c
HashSet set = new HashSet<>();
set.add(“a”);
set.add(“a”);
set.add(“b”);
set.add(“b”);
set.add(“c”);
set.add(“c”);
//迭代器遍历
> Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String string = (String) iterator.next();
System.out.println(string);
}
9.set集合去重
/*
* 创建Set保存 6个man 两两相同
* 去重
*/
HashSet set = new HashSet<>();
set.add(new Man(“gorilla”,10));
set.add(new Man(“gorilla”,10));
set.add(new Man(“gorilla1”,15));
set.add(new Man(“gorilla1”,15));
set.add(new Man(“gorilla2”,20));
set.add(new Man(“gorilla2”,20));
System.out.println(set);