------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1、泛型<>
泛型用的最多是集合框架
因为在定义集合时,在容器里是要指定加什么样的类型进去,比如是String ,Integer等等,
泛型的理解:当你用到集合框架里面创建了一个容器,这个容器要指定传什么类型的内容,如果没有注明的话,在编译的时候会出现安全问题
泛型有以下几种:
泛型类,定义在类上
也可以定义在方法上,泛型是放在返回值的前面,也就是(void 前面)
泛型接口
例1(现在我们把泛型定义在方法上)
class Student
{
public <T>void show(T t)
{
System.out.println(t);
}
public <Q>void print(Q q)
{
System.out.println(q);
}
}
class Teacher extends Student
{
public static void main(String[] args)
{
Student s=new Student();
s.show("abcd");字符串
s.show(123);整数
s.print("abcdddddd");
s.print(888888888);
}
}
答案:abcd
123
abcdddddd
888888888
当我们把泛型定义在方法上的话,里面可以添加各种数据类型
/*
//例2,在类上定义泛型:
class Student<T>
{
public void show(T t)
{
System.out.println(t);
}
public <Q>void print(Q q)
{
System.out.println(q);
}
}
class Teacher extends Student
{
public static void main(String[] args)
{
Student s=new Student();
s.show("abcd");//字符串
s.show(123);//整数
}
}
答案:编译失败,因为在show方法上没有定义泛型,泛型给定义到类上去了,出现这种情况应该这样定义。
传入字符串就用下面
Student<String> s=new Student<String>();
s.show("abcd");//字符串
要传入数字就用下面
Student<Integer> s=new Student<Integer>();
s.show(456);
*/
//例3:用到静态方法
class Student<T>
{
public static void show(T t)
{
System.out.println(t);
}
public <Q> void print(Q q)
{
System.out.println(q);
}
}
class Teacher extends Student
{
public static void main(String[] args)
{
Student<String> s=new Student<String>();
s.show("abcd"); //字符串
}
}
答案: 错误: 无法从静态上下文中引用非静态,
原因是静态方法不可以访问类上定义的泛型,只能把泛型定义在静态方法上
2、Collections
关于Collections是针对collection集合操作的工具类
那么Collection和Collections的区别
Collection 是单列集合的顶层父接口,它定义了单列集合collection的共性方法
Collections 是一个类,它定义了用于操作Collection的功能,有以下的一些操作,
fill 替换
swap 对换
replace 代替
sort 排序
reveser反转
Max 最值
import java.util.*;
class CollectionsDemo1
{
public static void main(String[] args)
{
sort();
}
public static void sort()
{
List<String> li=new ArrayList<String>();
li.add("abc");
li.add("aaa");
li.add("b");
li.add("aa");
//sop(li);
//Collections.sort(li);//排序,按照自然顺序排
//Collections.fill(li,"qq");//将集合里所有元素替换为qq
// Collections.swap(li,2,3); //使用索引将位置互换
//Collections.shuffle(li)//随机排序
Collections.reverse(li);//reverse,将元素进行反转
sop(li);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------