泛型
class Pair<T>{
private T first;
private T second;
public Pair(){first=null;second=null;}
public Pair(T first,T second){this.first=first;this.second=second;}
public T getFirst(){return first;}
public T getSecond(){return second;}
}
public static void main(String[] args){
Pair<String> pair=new Pair<String>("hello","java");
System.out.println(pair.getFirst());
System.out.println(pair.getSecond());
}
通配类型 通配符?
class Stats<T extends Number>{
T []nums;
Stats(T [] obj){
nums=obj;
}
double average(){
double sum=0.0;
for(int i=0;i<nums.length;++i){sum+=nums[i].doubleValue();
}
return sum/nums.length;
}
void doSomething(Stats<?> ob){System.out.println(ob.getClass().getName());}
}
public static void main(String[] args){
Integer integer[]={1,2,3,4,5};
Stats<Integer> obgi=new Stats<Integer>(integer);
Double dnums[]={1.1,2.2,3.3,4.4,5.5};
Stats<Double> dobj=new Stats<Double>(dnums);
dobj.doSomething(obgi);
}
动态的创建将要作为参数传递的数组假设有(hide()方法):
hide(new Weeble[]{new Weeble(),new Weeble()})
集合框架:Collection 和 map接口
区别在于Collection每个位置只能保存一个元素,list ArrayList set HashSet
map保存的是 [键对值] HashMap
要对自己定义的类进行排序,则应该在定义类的时候实现Comparable接口,并实现compareTo()方法:
定义:public interface Comparable<T>{
public int compareTo(T obj);
}
map里面用Object.get(key)来获取键值对应的元素;
Map<String, String> all=new HashMap<String,String>();
all.put("GFH", "高方红");
all.put("MB", "马彪");
all.put("GD", "李狗蛋");
all.put("XZH", "夏志恒");
String value=all.get("MB");
System.out.println(value);
System.out.println(all.get("GFH"));
System.out.println(all);
HashMap里的key都是无序的,TreeMap里的元素按key排序key本身也是对象,所以key对象所在的类也必须实现Comparable接口。
用法和HashMap一样。
迭代器:
Iterator
List<String> list=new ArrayList<String>();
list.add("hello");
list.add("Java");
list.add("!");
Iterator<String> iterator=list.iterator();
while(iterator.hasNext())
{
String string=iterator.next();
System.out.println(string+".");
}
class Pair<T>{
private T first;
private T second;
public Pair(){first=null;second=null;}
public Pair(T first,T second){this.first=first;this.second=second;}
public T getFirst(){return first;}
public T getSecond(){return second;}
}
public static void main(String[] args){
Pair<String> pair=new Pair<String>("hello","java");
System.out.println(pair.getFirst());
System.out.println(pair.getSecond());
}
通配类型 通配符?
class Stats<T extends Number>{
T []nums;
Stats(T [] obj){
nums=obj;
}
double average(){
double sum=0.0;
for(int i=0;i<nums.length;++i){sum+=nums[i].doubleValue();
}
return sum/nums.length;
}
void doSomething(Stats<?> ob){System.out.println(ob.getClass().getName());}
}
public static void main(String[] args){
Integer integer[]={1,2,3,4,5};
Stats<Integer> obgi=new Stats<Integer>(integer);
Double dnums[]={1.1,2.2,3.3,4.4,5.5};
Stats<Double> dobj=new Stats<Double>(dnums);
dobj.doSomething(obgi);
}
动态的创建将要作为参数传递的数组假设有(hide()方法):
hide(new Weeble[]{new Weeble(),new Weeble()})
集合框架:Collection 和 map接口
区别在于Collection每个位置只能保存一个元素,list ArrayList set HashSet
map保存的是 [键对值] HashMap
要对自己定义的类进行排序,则应该在定义类的时候实现Comparable接口,并实现compareTo()方法:
定义:public interface Comparable<T>{
public int compareTo(T obj);
}
map里面用Object.get(key)来获取键值对应的元素;
Map<String, String> all=new HashMap<String,String>();
all.put("GFH", "高方红");
all.put("MB", "马彪");
all.put("GD", "李狗蛋");
all.put("XZH", "夏志恒");
String value=all.get("MB");
System.out.println(value);
System.out.println(all.get("GFH"));
System.out.println(all);
HashMap里的key都是无序的,TreeMap里的元素按key排序key本身也是对象,所以key对象所在的类也必须实现Comparable接口。
用法和HashMap一样。
迭代器:
Iterator
List<String> list=new ArrayList<String>();
list.add("hello");
list.add("Java");
list.add("!");
Iterator<String> iterator=list.iterator();
while(iterator.hasNext())
{
String string=iterator.next();
System.out.println(string+".");
}