集合

集合


HashMap集合简介

概述
1. 表示双列集合,键具有唯一性,值是可以重复的。生活中我们用过词典,词典通过目录索引可以找到对应的单词。在Java里面的HashMap就类似于词典中的目录索引。
2. HashMap里边用key/value(键值对)存储数据,key就是键,value就是值。
HashMap的初始化
例:  HashMap<String,Integer> map = new HashMap<>();

Java中,集合的前后<>号中的泛型必须一致,或者后边<>号中的泛型可以省略不写
这是JDK1.7的新特性,菱形泛型

泛型

常用数据类型及其包装类(引用类型)

概述

泛指某种特定的数据类型, 表示形式为: <>
大白话: 泛型就是用来确定, 集合中将要添加什么类型的数据.
好处:提高代码安全性
注意点:
1. 泛型只能是引用数据类型
2. 泛型一般只和集合结合使用

包装类
概述:其实就是基本数据对应的引用数据类型。

各基本数据类型对应的包装类:

基本数据类型引用数据类型(包装类)
byteByte
shortShort
charCharacter
intInteger
longLong
floatfloat
doubleDouble
booleanBoolean

自动拆装箱(JDK1.5的新特性)

自动装箱: 就是把基本类型的数据转成对应的引用数据类型.
* Integer i = 10;
自动拆箱: 就是把引用类型的数据转成对应的基本数据类型.
* Integer i = 10;
* int a = i;


HashMap集合常用方法总结

put();往集合中添加元素.
如果是第一次添加就返回null, 如果是重复添加会用新值来覆盖旧值,并返回旧值.
remove(); 根据键删除该键值对.
如果键存在,就返回删除之前的值, 如果键不存在,返回null.
get();根据键获取对应的值,如果键不存在, 返回null。
size();获取集合的长度(这里的长度指的是 键值对对象的 个数)
isEmpty(); 判断集合是否为空
containsKey();判断集合是否包含给定的键
containsValue();判断集合是否包含给定的值
clear(); 清空集合中的元素


双列集合的遍历方式

第一种:根据键获取值
1. 获取到所有键的集合
2. 遍历,获取到每个键。
3. 根据键获取值。
示例代码:

public class Test{
    public static void main(String[] args){
       HashMap<String,Interger> hm = new HashMap<>();//菱形泛型
       hm.put("张三"22);
       hm.put("李四"23);
       hm,put("wangwu",25);
    //遍历双列集合
    for(String key:hm.keySet()){
        System.out.println(key+"----->"+hm.getValue(key));
    }
    }
}

第二种:直接遍历集合
示例代码:

public class Test{
    public static void main(String[] args){
       HashMap<String,Interger> hm = new HashMap<>();//菱形泛型
       hm.put("张三"22);
       hm.put("李四"23);
       hm,put("wangwu",25);
    //遍历双列集合
   for(Entry<String, Integer> map: hm.entrySet()){
            System.out.print(map.getKey()+"------>"+map.getValue());
        }
    }
}

ArrayList集合简介

一般我们在存放一组相同数据类型的数据时,就用数组,可是在很多时候我们不知道到底有多少数据需要存储,这时候我们就可以使用到集合,但是对于双列集合而言,我们不知道key就很难把数据取出来,所以就用到了ArrayList

ArrayList的初始化

例: ArrayList list = new ArrayList<>();
与HashMap的初始化是一样的。


ArrayList中的常用方法:

add() 往集合中添加元素
get() 根据索引, 获取对应的元素.
如果索引不存在,会报索引越界异常: IndexOutOfBoundsException
set() 根据给定的索引和元素, 修改对应位置的值.如果索引不存在,会报索引越界异常:IndexOutOfBoundsException
remove()根据索引移除对应的元素.
索引不存在会报索引越界异常:IndexOutOfBoundsException


集合和数组的相互转换

集合转数组:
Arrays#toArray()把集合对象转换成对应的数组形式。
数组转集合:
Arrays#asList() 把数组对象转换成其对应的集合形式。

如果是基本类型的数组转成集合,是把整个数组对象当作集合中的一个元素来转的,而且在数组转成集合后不能向集合中增加或者删除元素,但是可以修改元素。


相关面试题

一.数组与集合的区别是什么?
  1.长度不同
    (1)数组的长度是固定的。
    (2)集合的长度是可变的。
  2.存储的数据元素类型不同
    (1)数组:既可以存基本数据类型            ,也可以存放引用数据类型。
    (2)集合:只能存储引用数据类型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值