数据结构1:集合框架

类和接口总览

在这里插入图片描述

Collection接口

方法签名说明
boolean add(E e)将元素e放入集合中
void clear()删除集合中的所有元素
boolean isEmpty()判断集合是否空集
boolean remove(object e)如果元素 e 出现在集合中,删除其中一个
int size()返回集合中元素个数
object[] toArray()返回一个装有所有集合中元素的数组

示例

Collection<String> list= new ArrayList<>();//new一个名为list的字符串
    list.add("wd");//添加一个值为wd的元素进入list字符串
    list.add("nmd");;//添加一个值为nmd的元素进入list字符串
    System.out.println(list);//输出list字符串
    System.out.println(list.isEmpty());//判断是否为空集合
    list.remove("d");//如果有d这个元素则删除
    System.out.println(list);
    System.out.println(list.size());//输出字符串大小
    Object[] elem =  list.toArray();//返回装有所有元素的数组elem
    list.clear();//清理
    System.out.println(Arrays.toString(elem));

Map接口常用方法说明

方法签名说明
V get(Object k)根据指定的 k 查找对应的 v
V getOrDefault(Object k, V defaultValue)根据指定的 k 查找对应的 v,没有找到用默认值代替
V put(K key, V value)将指定的 k-v 放入 Map
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value
Set<Map.Entry<K, V>> entrySet()将所有键值对返回
boolean isEmpty()判断是否为空
int size()返回键值对的数量

示例

import java.util.Map;
import java.util.HashMap;
import java.util.Set;
public class test1 {
    public static void main(String[] args) {
        Map<String,String> ma = new HashMap<>();
        ma.put("马超","孟起");//put(k,v)
        ma.put("关羽","云长");
        ma.put("张飞","翼德");
        ma.put("黄忠","汉升");
        System.out.println(ma.get("马超"));//输出孟起
        System.out.println(ma.get("黄忠"));//输出汉升
        System.out.println(ma.getOrDefault("ma","曹操"));
        //判断key中是否有张飞
        System.out.println(ma.containsKey("张飞"));//true
        //判断value中是否有汉升
        System.out.println(ma.containsValue("汉升"));//true
        //将map中的元素输进一个字符串
        Set< Map.Entry<String,String> > q = ma.entrySet();
        for (Map.Entry<String,String> tmp :  q) {//循环输出
            System.out.println(tmp.getKey() + " " + tmp.getValue());
        }
    }
}

泛型

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

【规范】类型形参一般使用一个大写字母表示,常用的名称有:
E 表示 Element
K 表示 Key
V 表示 Value
N 表示 Number
T 表示 Type
S, U, V 等等 - 第二、第三、第四个类型

示例:

class Test<T>{//泛型类名为Test
    public T[] elem;
    public int size;

    public Test(){
        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 test1 {
    public static void main(String[] args) {
        Test<Integer> te= new Test<>();
        te.add(1);
        te.add(2);
        System.out.println(te.get(1));
    }
}

ArrayList和LinkList的区别

ArrayList基于数组,LinkList基于链表。
如果需要用到get和set访问。选择ArrayList的开销少一点。

本节结束,未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值