高效的Java集合框架GNU Trove的使用

 2023-09-07 阅读 17 评论 0

摘要:本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流。 未经本人允许禁止转载。 文章目录简介jar下载list与ArrayList集合Map与HashMap 简介 Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标

本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流。
未经本人允许禁止转载

文章目录

  • 简介
  • jar下载
  • list与ArrayList集合
  • Map与HashMap

简介

Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 Collections 类的版本。

jar下载

构建maven工程,在pom.xml文件中,作如下配置下载jar文件:

<!-- https://mvnrepository.com/artifact/net.sf.trove4j/trove4j --><dependency><groupId>net.sf.trove4j</groupId><artifactId>trove4j</artifactId><version>3.0.3</version></dependency>

下载完毕后,我们可以看到trove4j包含的package,如下图所示:
在这里插入图片描述

list与ArrayList集合

java高级框架、Trove中包含的list集合有Byte集合、Char集合、Float集合、Int集合等,包含的array集合有ByteArrayList、TIntArrayList等。如下图所示:
在这里插入图片描述
以下以TIntArrayList演示集合的操作。
TIntArrayList提供了处理int型集合的一系列方法。操作程序如下;

package com.qian.collection;import java.util.Random;
import gnu.trove.iterator.TIntIterator;
import gnu.trove.list.TIntList;
import gnu.trove.list.array.TIntArrayList;public class TestCollection {public static void main(String[] args) {TIntArrayList list = new TIntArrayList();//只能添加int类型list.add(1);//可以添加int数组int arr[] = {4,2,3};list.add(arr);//从数组的某一位置添加,从第二个位置添加,添加两个数字list.add(arr,1,2);//判断集合是否为空if (!list.isEmpty()) {System.out.println("集合不为空!");}//集合的遍历1for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//集合的遍历2System.out.println("第二种方式遍历结果为:");TIntIterator iter = list.iterator();while(iter.hasNext()){System.out.println(iter.next());}//数组移除值list.removeAt(4); //下表从0开始list.remove(1); //下标从1开始System.out.println("移除后的结果为:");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//获取最大值与最小值System.out.println("数组中最大值为:" + list.max());System.out.println("数组中最小值为:" + list.min());//集合排序,采用升序排序list.sort();System.out.println("排序后的结果为:");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//转化成字符串String listToString = list.toString();System.out.println(listToString);//判断是否包含某值if (list.contains(3)) {System.out.println("集合包含3元素!!");}//集合求和int sumAll = list.sum();System.out.println("数组所有元素的和为:" + sumAll);//集合的子集合TIntList sublist = list.subList(1, 4);for (int i = 0; i < sublist.size(); i++) {System.out.println(sublist.get(i));}//集合反转list.reverse();System.out.println("集合反转后结果为:");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//集合在某位置插入值list.insert(0, 5);System.out.println("插入值的结果为:");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//集合随机打乱list.shuffle(new Random());System.out.println("集合打乱操作");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}//集合清空list.clear();}
}

上述操作的内容包括,TIntArrayList集合的实例化,赋值,循环的两种方式,集合移除值、集合最大值最小值、集合排序、集合求和、集合反转、集合随机打乱、集合子集获取等。
以下为程序的输出结果:
在这里插入图片描述
在这里插入图片描述

Map与HashMap

以下以TIntIntHashMap演示操作,程序如下:

package com.qian.collection;import gnu.trove.iterator.TIntIterator;
import gnu.trove.map.hash.TIntIntHashMap;public class TestMap {public static void main(String[] args) {//实例化TIntIntHashMap map = new TIntIntHashMap();//存放值map.put(1, 1);map.put(2, 3);map.put(3, 5);//判断是否为空if (!map.isEmpty()) {System.out.println("map集合不为空");}//循环遍历--方式1 int[] keys = map.keys();for (int i = 0; i < keys.length; i++) {System.out.println("key:" + keys[i] + "\tvalue:" + map.get(keys[i]));}//循环遍历--方式2TIntIterator iter =  map.keySet().iterator();System.out.println("第二种方式遍历的结果为:");while (iter.hasNext()) {int key = iter.next();System.out.println("key:" + key + "\tvalue:" + map.get(key));}//指定key位置key加上某数map.adjustValue(2, 1);System.out.println("key为2的value加上1结果为:");for (int i = 0; i < keys.length; i++) {System.out.println("key:" + keys[i] + "\tvalue:" + map.get(keys[i]));}//指定key位置加上某数返回该数int adjust = map.adjustOrPutValue(1, 5, 1);System.out.println("加上5为:" + adjust);System.out.println("加上某值的结果为:");for (int i = 0; i < keys.length; i++) {System.out.println("key:" + keys[i] + "\tvalue:" + map.get(keys[i]));}//是否包含某个key值if (map.containsKey(1)) {System.out.println("包含key---1");}//value是否包含某值if (map.containsValue(4)) {System.out.println("包含value---4");}}
}

程序输出结果为:

在这里插入图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/13371.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息