Java常用工具类 - 集合

java

集合概述

  1. Java中的集合是工具类,可以存储任意数量的具有共同属性的对象。与数组不同,集合的长度可以动态改变,所以数组适合去存储固定长度的数据,集合适合去存储不固定长度的数据。
  2. 集合的应用场景:

    1)无法预测存储数据的数量。

    2)存储具有一对一关系的数据(比如某件商品,其商品编号只对应这件商品)。

    3)需要进行数据的增删。

    4)数据重复问题。

集合框架的体系结构

Collection:(类的对象) 三个子接口:

List:(序列) 有序的、允许重复的 主要实现类:

ArrayList:长度动态增长的数组

Queue:(队列) 有序的、允许重复的 主要实现类:

LinkedList:链表的内容

Set:(集)无序的、不允许重复的 主要实现类:

HashSet:哈希值

Map:(键值对)主要实现类:

HashMap:哈希表

List集合

List(列表):

1)元素有序 可重复 -----称为序列 1223

2)可以 精确 的控制 每个元素的插入位置,或删除某个位置的元素

3)主要有两个实现类 ArrayList LinkedList

ArrayList和数组比较相似,不同就是ArrayList存储个数会动态变动的。

ArrayList:

1)底层是由数组实现的

2)长度 动态增长

3)在列表尾部 插入或删除数据 非常有效

4)但在列表中间插入数据时会产生大量的元素复制,效率较低,所以更适合 查找与更新新数据

5)元素可以为null值

常用方法使用:

List list = new ArrayList();//导入java.util包

list.add("Java"); //添加数据

list.size(); //列表中元素个数

list.get(int i); //显示列表中i处元素

list.remove(int index); //移除i处元素

list.remove(Object o); //移除列表中元素

list.contains(Object o); //查询列表中是否包括某个对象

Set集合

  1. Set:元素无序并且不可以重复的集合,被称为集。
  2. HashSet:

    1)元素无序且不可重复,HashSet是Set的一个重要实现类,称为哈希集;

    2)HashSet中只允许有一个null元素;

    3)具有良好的存取和查找性能。

    4)HashSet中的元素无序并且不可以重复

    5)HashSet的底层其实是HashMap。

    6)HashSet默认容量是16,默认的加载因子为0.75

什么是加载因子(负载因子/装载因子)?

用于表示哈希表中元素填满的程度。

冲突的机会越大,则查找的成本越高。反之,查找的成本越低,从而查找的时间越少。

HashMap中的加载因子

①new HashMap();

初始容量是16,加载因子loadFactor=0.75,默认容量是16*0.75=12

②new HashMap(int initialCapacity);

给定自定义的loadFactor.

③new HashMap(int initialCapacity, fload loadFactor);

自定义初始容量,自定义加载因子。

常用方法

迭代器:Iterator接口可以以统一的方式对各种集合元素进行遍历

hasNext():检测集合中是否还有下一个元素

next():返回集合中的下一个元素

把集合添加到迭代器中:(导入包)Iterator 迭代器名=集合名.iterator()方法

遍历迭代器并输出:

Map

Map是一个接口,无法进行实例化操作。

可以定义一个引用指向HashMap()的方法构造一个Map类,

添加键值对

向Map中添加元素时使用 对象名.put(key, value)的方法添加键值对。

遍历Map

方法一:使用iterator定义一个引用,在指向Map的实例化对象中使用对象名.values()f返回Map类中所有值的内容。

Iterator<String> it = objName.values().iterator();

while (it.hasNext()) {

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

}

方法二:使用指向Map的实例化对象调用 entrySet() 方法,返回一个集合,集合里面包含了Map类当中所有的键值对。

Set<Map.Entry<String, String>> entries = objName.entrySet();

for (Map.Entry<String, String> en : entries) {

System.out.print(en.getKey()+"-");;

System.out.println(en.getValue());

}

查找某个key

keySet()方法将map中所有key值的取出,返回值是个只存放key值的Set集合

Set<String> keySet = objName.keySet();

for (String key : keySet) {

if (strSearch.equals(key)) {

System.out.println("找到了!"+"键值对为:"+key+"-"+objName.get(key));

break;

}

}

检查是否存在某个键

objName.containsKey(keyName);

以上是 Java常用工具类 - 集合 的全部内容, 来源链接: utcz.com/z/390542.html

回到顶部