JAVA基础加强之泛型
package cn.csdn.itcast.generic;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
/*泛型集合的取
* 两边必须一样
* */
public class GenericList {
@Test
public void test1() {
List<String> list1 = new ArrayList<String>();
list1.add("aaa");
list1.add("bbb");
list1.add("ccc");
// 传统方式
Iterator<String> it = list1.iterator();
while (it.hasNext()) {
String value = it.next();
System.out.println(value);
}
// 增强for
for (String s : list1) {
System.out.println(s);
}
}
@Test
public void test2() {
Map<Integer, String> map = new LinkedHashMap<Integer, String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(3, "cc");
Set<Map.Entry<Integer, String>> set = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = set.iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
int key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":::" + value);
}
// 增加for循环
for (Map.Entry<Integer, String> entry : map.entrySet()) {
int key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":::" + value);
}
}
}
package cn.csdn.itcast.generic;
import org.junit.Test;
public class GenericPractice {
/*
* 编写一泛型方法,实现指定位置上的数组交换功能
*/
@Test
public <T> void swap(T arr[], int post1, int post2) {
T temp = arr[post1];
arr[post1] = arr[post2];
arr[post2] = temp;
}
/* 编写一个泛型方法,接受一个任意数组,颠倒数组的所有元素 ,泛型定义在返回类型的前面*/
@Test
public <T> void reverse(T arr[]) {
int start = 0;
int end = arr.length - 1;
while (true) {
if (start >= end) {
break;
}
T temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
}