(散分,学习)突然发现一个比较好的去掉集合中重复数据的算法

本文介绍了一种使用自定义Hashtable去除数组中重复元素的方法。通过将数组中的每个元素插入Hashtable中,若插入时对应位置为空,则成功插入;若已存在元素则视为重复,最终展示不含重复元素的数据集合。
Java code
package fx.algorithm.hash.app; /** * 利用hashtable去掉重复的数据 * * @author 咖啡 * */ public class HashTableApp3 { private static int[] array = { 10, 10, 2, 3, 5, 7, 8, 2, 9, 2, 5, 6, 7 }; public static void main(String[] args) { HashTable table = new HashTable(array.length); for (int i = 0; i < array.length; i++) { table.insert(new DataItem(array[i])); } table.displayTable(); } } /** * 封装数据,可要可无 * * @author 咖啡 * */ class DataItem { private int iData; public DataItem(int ii) { this.iData = ii; } public int getkey() { return iData; } } /** * 自定义一个table * * @author 咖啡 * */ class HashTable { private DataItem[] hashArray; private int arraySize; public HashTable(int size) { arraySize = size; hashArray = new DataItem[arraySize]; } /** * 显示table */ public void displayTable() { System.out.print("Table "); for (int i = 0; i < arraySize; i++) { if (hashArray[i] != null) { System.out.print(hashArray[i].getkey() + " "); } } System.out.println(); } /** * 将值直接作为table中的下标,如果该下标存在一个数据说明有冲突,不管 */ public void insert(DataItem item) { int key = item.getkey(); if (hashArray[key] == null) { hashArray[key] = item; } } }


评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值