【Java开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了Java开源代码-TextGeneric.java的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
package com.zf.s11;//创建一个包
import java.util.ArrayList;//引入类
import java.util.Collection;
import java.util.List;
class Animal {// 动物父类
public String name;//名字
public Animal(String name) {
this.name = name;
}
public String toString() {
return "动物的名字: " + this.name;
}
}
class Cat extends Animal {// 动物子类
public String sound;//声音
public Cat(String name, String sound) {
super(name);//使用父类的名字
this.sound=sound;
}
public String toString() {
return super.toString() + ",它能"+sound;
}
}
public class TextGeneric {// 操作泛型的类
//使用能配符,?代表任何类型
public static void operatorCollection(Collection<?> collect){
if (collect == null) {//判断对象是否为空
return;
}
for (Object obj : collect) {//循环遍历集合元素
System.out.print(obj + " ");
}
System.out.println();//换行
}
//使用有限制的通配符? extends,可以接受任何父类及其子类
public static void displayName(Collection<? extends Animal> collect) {
if (collect == null) {//判断对象是否为空
return;
}
for (Animal animal : collect) {//循环遍历动物集合元素
System.out.print(animal.name + " ");
}
System.out.println();
}
public static <K> List<K> arrayToList(K[] data) {//泛型方法,将一个任意类型数组添加到列表
if (data == null) {//判断对象是否为空
return null;
}
List<K> list = new ArrayList<K>();//创建一个列表,K代表任意一个类
for (K x : data) {//循环将元素放入列表中
list.add(x);
}
return list;
}
// 范型方法,在一组Animal对象中查找名字为name的Animal对象
public static <K extends Animal> K findAnimal(K[] animal, String name) {
if (animal == null) {//判断
return null;
}
K parent = null;//K可以是父类对象或者子类对象
for (K x : animal) {// 依次遍历Animal对象组
if (x.name.equals(name)) {// 如果v对象的name与参数name匹配,则退出遍历
parent = x;
break;
}
}
return parent;// 返回
}
public static void main(String[] args) {//java程序主入口处
System.out.println("1.目标类型己指定");
List<String> list_string = new ArrayList<String>();// 指定具体的类型,只能装String类型
list_string.add("one");//添加元素
list_string.add("two");//只能装String类型,否则会出错
list_string.add("three");
String first = list_string.get(0);//在从列表中取值时,不用作强制类型转换
String second = list_string.get(1);
String three = list_string.get(2);
//需要三个参数
System.out.printf("第一个元素%s,第二个元素%s,第三个元素%s%n",first,second,three);
System.out.println("2.泛型通配符以及继承");
List<Integer> list_Int = new ArrayList<Integer>();//创建列表,只能放Integer类型
list_Int.add(10);
list_Int.add(20);
list_Int.add(30);
//调用具有“?”通配符的方法
// 该方法既可以打印整型列表,也可以打印字符串列表
operatorCollection(list_Int);
operatorCollection(list_string);
List<Animal> animals = new ArrayList<Animal>();//创建列表,只能放Animail及其子类对象
animals.add(new Animal("动物1"));
animals.add(new Animal("动物2"));
animals.add(new Animal("动物3"));
List<Cat> cats = new ArrayList<Cat>();//创建列表,只能放Cat及其父类对象
cats.add(new Cat("小羊", "咩咩叫"));
cats.add(new Cat("小狗", "汪汪叫"));
cats.add(new Cat("小猫", "咪咪叫"));
displayName(animals);//调用具有“? extends” 通配符的方法
displayName(cats);//只接受父类以及子类类型的列表
System.out.println("3.泛型方法");
Integer[] obj = { 11, 22, 33, 44, 55 };
List<Integer> resultInt = arrayToList(obj); //调用方法将任意类型的对象数组转换整型数组
operatorCollection(resultInt);//调用方法打印整型列表
String[] ss = { "cat", "dog", "cattle", "sheep", "horse" };
List<String> result = arrayToList(ss);//调用方法转换字符串数组
operatorCollection(result);//调用方法打印字符串列表
Animal[] animal = { new Animal("动物1"), new Animal("动物2"),
new Animal("动物3") };//创建对象数组并初始化
Animal parent = findAnimal(animal, "动物1");//根据名字进行查找
System.out.println("找到的动物1:" + parent);
Cat[] cat = { new Cat("小羊", "咩咩叫"), new Cat("小狗", "汪汪叫"),
new Cat("小猫", "咪咪叫") };
Cat child = findAnimal(cat, "小羊");
System.out.println("找到的小羊:" + child);
}
}
上一篇:
TextFTPFileTran.java
下一篇:
首页轮播3.jpg