关于集合方法和泛型

在上一篇中,介绍了一下集合

ArrayList里 add(Object object)方法,向集合中插入一个object类型的数据,ArrayList是按插入的顺序,有序进行排列,每一个插入的数据都有一个下标,下标跟数组一样从0开始,因为他是连续的,所以我们可以通过get(下标)来获取那个位置的值,跟数组[下标]一样的作用。在ArrayList中,每一次add插入数据之后,会把原来位置的数据往后移一个位置,如果想对原数据进行修改,使用set(int index,Object object)方法,把具体下标的数据换成一个object类型的对象,当我们想得到数组的长度时,是用数组名.length,在集合中,我们想获取元素的数量,集合的容量时,使用集合.size()方法,查找时,用contains(Object object)方法查找,还有可以清空集合的方法,集合.clear(),增删改查都可以通过这些方法来实现。

在集合中接触到一个新概念,叫做迭代器,迭代器就引入了遍历,

ArrayList集合有三种遍历方式,因为他有下标,所以和数组一样,可以用for循环进行遍历,

for(int i = 0;i < 集合.size();i++){

System.out.print(集合.get(i));

}

for(Object o:集合){

System.out.print(0);

}

Iterator it = 集合.iterator();

while(it.hasNext()){

System.out.print(it.next());

}

LinkedList是一个收尾相连的链表,所以他多了几个可以对首尾数据处理的特殊方法,可以对他的首尾进行操作,

对于LinkedList来说多了一种遍历方法

ListIterator<Student> listIterator=students.listIterator();

while(listIterator.hasNext()){

System.out.println(listIterator.next());

}

Map中,常用的HashMap集合,跟list不同的地方是,使用集合.put()方法来插入数据,remove来移除,entrySet(),keySet(),把key放进set集合中,,通过key来获取value的值,entry是一个集合,把数据存进Set集合中

三种遍历方式

Iterator it = map.keySet().iterator();
        while (it.hasNext()) {
            key = (String) it.next();
            value = (String) map.get(key);
            System.out.println("key:" + key + "---" + "value:" + value);
        }
Iterator it = map.values().iterator();
        while (it.hasNext()) {
            value = (String) it.next();
            System.out.println("value:" + value);
        }
 Iterator it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry entry = (Map.Entry) it.next();
            key = (String) entry.getKey();
            value = (String) entry.getValue();
            System.out.println("key:" + key + "---" + "value:" + value);
        }

在这些集合中,插入的对象都是Object,遍历都需要转换类型,很麻烦,所以java为了统一规范,简写代码,引入了一个概念——泛型

泛型的定义方法

Map <参数类型> 集合名 = new <参数类型> ArrayList();

此时这个集合中,所有插入的对象,都是泛型规定的参数类型

泛型不仅仅只作用于集合中,还可以作用在泛型类,泛型方法,

泛型类的定义方法:

class类名<参数类型>{

private <参数类型> 变量名

}

泛型类只支持引用数据类型,不支持基本数据类型,但是可以用基本数据类型的包装类。

public static <E> void print(E... e){

for(int i = 0; i < e.length; i++){

System.out.println(e[i]);

}

}

泛型方法的定义,

访问权限修饰符 <参数类型> 方法返回值 方法名(参数列表){方法体}

在泛型类实例化的时候,要把泛型的参数类型用实际的参数类型来替换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值