集合类与泛型

集合类

数组Array和集合的区别:

(1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)

(2)JAVA集合可以存储和操作数目不固定的一组数据。 (3)若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。

联系:使用相应的toArray()和Arrays.asList()方法可以回想转换。

这里写图片描述

ArrayList

常用api有:
1.get
2.set
3.add
4.remove
对象是object类型,四种方法可实现增删改查
5.获取长度 size
6.获取位置indexof

LinkedList

ArrayList 和 LinkedList的区别
ArrayList 底层的实现是动态数组
LinkedList 底层是链表

区别: 查询上, ArrayList效率比较高,linkedlist比较低
增删上, linkedlist效率比较高,rrayList效率低

如果不知道增删多还是查询多就用, ArrayList

LinkedList 特有方法
特有方法
addFirst()
addLast()
removeFirst()
removeLast()

5) List集合遍历的三种方式
        a) 普通for循环
        b) 增强for
        c) 迭代器


        Iterator it=a.iterator();
        while(it.hasNext()) {
        Object obj= it.next();
        System.out.println(obj);
        }

           /*for (int i = 0; i < a.size(); i++) {
            System.out.println(a.get(i));
        }*/


        for (Object object : a) {
            System.out.println(object);
        }

collection 规定的其他方法
clear(); isEmpty(); iterator(); toArray(); contains();

set

对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象,set集合中的元素是唯一的,无序的
遍历只有两种方式
添加时遍历集合判断是否有重复的,默认根据地址(hashcode) 判断,特殊情况需要重写equals方法

map

这里写图片描述

泛型

泛型是一个很宽泛,复杂的概念,这里做简单介绍。
五) 泛型的简单使用

ArrayList<User> alist = new ArrayList<User>();
    alist只能存入 User类型的对象
    get(int index)的返回值也是User类型
HashMap<String,User> hm = new HashMap();
    hm可以的元素的key只能是String,value只能是User类
    get(String key)的返回值也是User类型

关于泛型类/泛型接口/方法  后面会提到

为了定义一个类为泛型类型,需要将泛型类型放在类名之后,为定义一个方法为泛型类型,需要将泛型类型放在方法返回类型之前
这是关于别人写的泛型的一篇博客

集合的操作类的几个常用方法
1.   sort
        自定义类排序
             1.实现comparable接口,添加泛型避免强转
             2.重写compareTo方法    
                 1.如果是int直接比较差值,返回结果
                 2.double类型可以通过if语句,三目运算,返回结果,也可以调用MAth.ceil()方法,向上取整(-0.5)他们的差值判断???(先判断相等)
int result=this.math-o.math;  
result=result==0?this.chinese-o.chinese:result;
result=result==0?this.english-o.english:result;
return result;

2.reverse
反转
3.binarysearsh
二分查找
4.max,min

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值