数据结构的学历历程01

数据结构的学习历程01

集合框架

类和接口总览

在这里插入图片描述
ArrayList在实例化时无参数的时候,第一次add将扩容容量至10,之后每次扩容为之前的2倍,而如果有参数时,实例化将会把参数设置为容量,之后每次扩容为之前的2倍
比较器: Comparable Comparator
迭代器(进行遍历的一种方式): Iterator ListIterator
工具类: Collection Arrays
实现了 Iterable接口的类都可以用迭代器进行遍历,而实现map接口的不能使用迭代器进行遍历。

Collection

用法及用例

    Collection<String> coll= new ArrayList<>();
    coll.add("qqq");
    coll.add("qwe");
    System.out.println(coll);
    System.out.println(coll.isEmpty());//判断是否为空集合
    coll.remove("q");//如果有q这个元素则删除
    System.out.println(coll);
    System.out.println(coll.size());
    Object[] elem =  coll.toArray();
    coll.clear();//清理
    System.out.println(Arrays.toString(elem));

Map

用法及用例

	Map<String,String> lit = new HashMap<>();
	lit.put("磊","昨日");
	lit.put("小","冷枪");
	lit.put("麻","X");
	lit.put("木","8");
	System.out.println(lit.get("磊"));
	System.out.println(lit.get("木"));
	System.out.println(lit.getOrDefault("lit","涛"));
	System.out.println(lit.containsKey("麻"));
	System.out.println(lit.containsValue("8"));
	Set < Map.Entry<String,String> > q = lit.entrySet();
	for (Map.Entry<String,String> tmp :  q) {
	    System.out.println(tmp.getKey() + " " + tmp.getValue());
	}

泛型

泛型:就是规定某个类型里存储的元素都为某种类型的元素,如:
String[] 类型中只能存储String类型的元素
int[] 类型中只能存储int类型的元素
而如果我们写一个类,关于这个类型有两个对象,而我们希望第一个对象里存储的元素都为int类型,且第二个类型中的元素为String类型。此时,就要用到泛型。

class Group<T>{
    public T[] elem;
    public int size;

    public Group(){
        this.elem = (T[]) new Object[10];
        this.size = 0;
    }
    public void add(T val){
        this.elem[this.size]=val;
        size++;
    }
    public T get (int n){
        if ( n<0 ||n>=this.size) return null;
        return this.elem[n-1];
    }
}
public class Demo06 {
    public static void main(String[] args) {
        Group<Integer> lit= new Group<>();
        lit.add(1);
        lit.add(2);
        System.out.println(lit.get(1));
    }
}
泛型的优点
1、可以在编译的时候的时候,自动进行类型的检查
2、存放元素的时候,不需要强制类型转换。
3、编译的时候起作用,运行的时候被擦除
泛型的缺点
1、不能new泛型类型的数组
若要newT类型的数组则应:   T[] t = (T[])new Object[];
2、简单类型不能作为泛型类型 的参数:如:int
泛型如何工作:
	擦除机制:是在编译期间存在的一种机制,泛型的概念只存在在编译期间(在编译期间,将T擦除为Object,擦除不是替换)
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值