欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合类与泛型

程序员文章站 2022-05-23 14:22:01
...

集合类

数组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