集合框架

重要实现类

HashMap:上一篇文章,描述内容一致.待贴

 

HashTable:存储数据的方式和HashMap一致,线程安全.

LinkedHashMap: 存储数据的方式和HashMap一致,同时维护一个键的链表,保存键的新增结构.次实现类可以保证存入的键值对,新增顺序和存储顺序一致.

TreeMap:使用红黑树方式存储键值对.

 

泛型

1.泛型在集合中的应用:

泛型本身没有多态,必须要求左右两端类型一致.

List<String> list = new ArrayList<>();/推荐使用

List<String> list = new ArrayList();/不推荐使用

List<String> list = new ArrayList<String>();//标准形式

list.add(String); //泛型的添加元素方法,必须是和泛型类型一致,

String s = list.get(o);//直接返回泛型规定类型,不需要强转

 

 

Set<String> set = new HashSet<>();

set.add(String);

Map<String,String> map = new HashMap<>();

map.put(String,String);

String s = map.get(String);

 

2,泛型在类声明中的引用

Public class<T> Person{
    public T data;//使用泛型声明类的属性

    public T methodOne(){//声明方法的返回方法
    }

    public void methodTwo(T t){声明方法的参数
    }
}

//确定泛型具体类型的时机,泛型的具体类型如果不确定,则默认使用object
public class TestOne{
    public static void main(String[] args){
        Person<String> person = new Person();//在创建对象时指定泛型的具体类型
        //泛型的具体类型一旦指定,name在该类中所有泛型都直接变成指定的类型.
        person.methodTwo("helo");
        String s = person.methodOne();
        person.data = "nihao";

    }
}

//在继承状态下确定泛型的具体时机
public class Teacher extends Person<String>{//在子类继承父类时确定泛型的具体类型.子类继承到的父类的泛型变成指定类型.

}

public class Teacher<T> extends Person<T> {//在子类继承父类时子类继承父类的泛型,子类变成泛型类,此时需要在创建子类对象时指定泛型的具体类型
}

public class Teacher extends Person{
//子类继承泛型父类时,没有指定泛型的具体类型时,子类也没有泛型.此时从父类继承到的泛型默认使用object
}

3.泛型在接口中的应用

public interface Person<T>{
    public T methodOne();//使用泛型作为方法的返回类型
    public void methodTwo(T t);// 使用泛型作为方法的参数类型
}

//确定泛型的具体时机
public class Teacher implements Person<String>{
//在实现类实现接口是指具体泛型类型,此时类不是泛型的,接口中的泛型类型直接指定为具体类型
}

public class Teacher<T> implement Person<>T>{//实现类实现接口是继承接口的泛型,此时实现类也是泛型的,确定泛型的具体时机是创建实现类对象时
}


//在接口继承接口时确定泛型的具体类型
public interface Chinese extends Person<String>{// 子接口继承父接口时,测试子接口不是泛型的

}

public interface Chinese<T> extends Person<T>{// 子接口继承父类接口时继承父类接口的泛型,测试子接口也是泛型的,需要子接口的实现类实现子接口时确定泛型的具体类型

4.泛型的通配和上下限

public classTestOne{
    Public void methodONe (Collection<?> col){
    //?是通配泛型,这个写法可以使任何一个

//未完成,待完善
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值