Java集合框架学习笔记11.18

1.集合的概念

对象的容器,实现了对多个对象进行操作的常用方法

和数组区别:

(1)数组长度固定,集合长度不固定

(2)集合只能存储引用类型


2.Collection父接口

Collection父接口:无序,无下表,不能重复 

使用:

先用接口下的类定义一个对象容器

然后

XX.add(A)为增加对象

XX.remove(A)为删除对象

XX.size()是查看大小

XX.toArray(转化成数组)

补充:

Arrays.asList(数组),产生新的集合,但是不能增删

调用静态类Collections的方法

Collections.binarySearch(二分查找)

Collections.sort(排序)

Collections.reverse(反转)

Collection.shuffle(打乱)

Collections.copy(要复制的,被复制的)(但要大小一样)

直接用

遍历:

使用迭代器(迭代器专门用来遍历集合的一种方式)(Iterator是集合的方法,创建接口)

hasNext()

next

remove删除当前元素

判断:

contains()

equals

hashcode给个哈希值


3.List接口与实现类(ArrayList,LinkedList)

List接口:有序,有下表,元素可重复

常用方法:

get(位置)获取该位置的数

add(位置,对象);插入元素

addAll(位置,集合);插入集合的元素

indexOf返回角标

遍历:

新增可以使用列表迭代器

previous是从后往前

next是从前往后

实现类:

ArrayList※,数组结构,查询快,增删慢,效率快

Vector,数组结构,查询快,增删慢,效率慢

可以用.Enumeration创建枚举器(跟迭代器差不多)

LinkedList,链表结构实现,增删快,查询慢


4.泛型

泛型就是把类型作为参数传递。

有泛型类,泛型接口,泛型方法。

<大写字母,...>T称为类型占位符,表示一种引用类型

使用:

泛型类:

类名+<T>

T t;使用泛型类定义

public T show(T t){使用泛型类做方法

        sout.t

}

名<引用类型> 名 = new 名<类型>() 使用泛型类创建对象

泛型接口:

接口名+<T>

泛型方法:

<T> 返回值类型

定义<T> void XX(T t){ }

使用XX(A)

会根据A的类型自动补T

泛型集合:

默认为Object影响使用,可以改成其他


5.Set接口与实现类(HashSet,TreeSet)

Set接口:无序,无下表,元素不能重复

方法全部继承Collection

使用指令与List相似

add,remove,clear(),iterator

实现类:

HashSet,两次比较会调用hashcode和equals进行确认,如果相同,会认为重复,如果不同,会形成链表

TreeSet,红黑树基于排序顺序实现,用接口SortedSet自动排序,元素必须继承Comparable接口,元素必须实现CompareTo,通过CompareTo方法确定是否重复(方法返回0为重复)

6.Map接口与实现类

 Map接口的特点:

用来储存任意键值对,键不可能重复,值可重复

方法:

put(key,balue)存入

get(key)根据键获取对应的值

keyset()返回key的集合,可以用Set接着

entryset()返回类型为map.Entry的集合

containsKey比较键

containsValue比较值

遍历:

调用实现类map对象的keySet方法,返回含Key的Set集合

调用实现类map对象的entrySet方法,返回类型为Map.Entry的映射对的Set集合,用get(效率更高)

实现类

HashMap【重点】

Hashtable【不常用】

Properties【用于配置文件的读取】

TreeMap,基于排序顺序实现,用接口SortedSet自动排序,元素必须继承Comparable接口,元素必须实现CompareTo,通过CompareTo方法确定是否重复(方法返回0为重复)

7.总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值