generic
定义未知参数类型的方法
public class GenericCLass01 {
public static void main(String[] args) {
ArrayList array01 = new ArrayList<String>();
ArrayList array02 = new ArrayList<Integer>();
array01.add("a");
array01.add("b");
array01.add("c");
array02.add(1);
array02.add(2);
array02.add(3);
printarray(array01);
printarray(array02);
}
/*a
不知道会传递什么类型的数据可以用<?>
但是在定义的时候不能定义<?>型的数据 ,如 ArrayList array03 = new ArrayList<?>();是错误的
*/
public static void printarray(ArrayList<?> list){
Iterator<?> it = list.iterator();
while (it.hasNext()){
Object o = it.next();
System.out.println(o);
}
}
}
含有泛型的方法
/*
泛型在方法的修饰符和参数列表之间
修饰符 <泛型> 返回值类型 方法名 参数列表(泛型 形参)
调用方法的传递的实参是什么类型,泛型即为这个类型
*/
public class GenericMethod {
public <e> void method01(e name){
System.out.println(name);
}
public static <b> void metho2(b name){
System.out.println("静态方法"+name);
}
}
含有泛型的类
//E是未知数据类型,创建的对象是什么数据类型,E就是什么类型
public class GenericClass <E>{
private E name;
public void setName(E name) {
this.name = name;
}
public E getName() {
return name;
}
}
接口的类型为泛型
public interface GenericInterface<e> {
public abstract void method(e e);
}
接口的实现类中泛型是什么类型重写接口的方法参数类型也为实现类的类型
public class GenerInterfaceImp1 implements GenericInterface<String>{
@Override
public void method(String s) {
System.out.println(s);
}
}
HashSet
在import java.util.HashSet;下
特点:增删快,查找慢
存储和取出的顺序可能不一样,无序
不能用索引遍历
1. itreator
2. 增强for循环
不能存储相同的元素
如果要用HashSet集合实例化一个自定义的类,让其也满足不能储存相同元素的条件,就必须在类中重写equals()方法和()hashcode()方法
LinkedHashSet存储和取出都是有序的
List
有索引,可以用for循环
add()把给定对象添加到集合中
返回值为boolean类型,没有什么意义可以不接受返回值
remove()删除指定对象
返回值为boolean类型,若有该对象则返回true无则返回false
contains()查看是否包含该对象
size()返回集合中对象的个数
isEmpty()判断集合是否为空
toArry()将集合中的元素储存到数组中
clear()清空集合
清空集合,但不删除集合
LinkedList
add();
addLast();//与add的作用一样,尾插
addFirst();//头插
getFirst();//返回第一个元素
getlLast();//返回最后一个元素
removeFirst();//返回值为删除的元素
pop();//删除第一个与元素。并返回 作用域removeFirst()一样
removeLast();