「java数组去重最优解法」java实现数组去重
本篇文章给大家谈谈java数组去重最优解法,以及java实现数组去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中怎么样子找出数组中重复的数,并去除
- 2、JAVA关于顺序数组数据去重,效率最高的方式是什么?
- 3、Java数组去重复问题
- 4、java中怎么找出数组中重复的数并去除?
- 5、javascript怎样数组去重并排序.效率最快的
java中怎么样子找出数组中重复的数,并去除
其实只要遍历数组,然后放进set集合内即可实现。
比如:
//set集合可以自动去重
Integer[] a = {1, 2, 2 , 19, 19, 8, 9};
SetInteger set = new HashSetInteger();
for(Integer i : a)
set.add(i);
for(Object s: set.toArray())
System.out.print(s+ " ");
}
JAVA关于顺序数组数据去重,效率最高的方式是什么?
JAVA关于顺序数组数据去重,效率最高的方式是使用LinkedHashSet也是Set,set的特征就是对重复的元素只保存一个,LinkedHashSet只是在内部使用链表维护元素插入的顺序
package com.question;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.LinkedHashSet;
/**
* delete the conflict String.
*
* @author Xxx
*/
public class Q16 {
/**
* generate the text.
*
*/
public void init() {
// write file
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream("C:/init.txt");
for (int i = 0; i 100000; i++) {
for (int j = 0; j 2; j++) {
outputStream.write(("Hello" + i).getBytes());
outputStream.write("\r\n".getBytes());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
outputStream = null;
}
}
}
/**
* filter the string.
*
* @return
*/
public LinkedHashSetString filter() {
// create a LinkedHashSet project.
LinkedHashSetString linkedHashSet = new LinkedHashSetString();
try {
// read the file.
InputStream inputStream = new FileInputStream("C:/init.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = bufferedReader.readLine();
// add the string to the LinkedHashSet
while(line != null) {
linkedHashSet.add(line);
line = bufferedReader.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return the result.
return linkedHashSet;
}
@Deprecated
public static void main(String[] args) {
Q16 q16 = new Q16();
// q16.init();
LinkedHashSetString linkedHashSet = q16.filter();
System.out.println(linkedHashSet.size());
}
}
Java数组去重复问题
最简单的方式,我觉得效率也比较高的! 你建一个set。TreeSet吧,把组数组里面的数据取出来一个一个放入set。最后set里面的数据就是没有重复的了!把set再放回ArrayList就OK。好处是,不管List有多大,放入的时候都是一个一个放的。我尝试过给6万条数据去重复,效率还是可以的
java中怎么找出数组中重复的数并去除?
java中找出数组中重复的数并去除的代码如下:
public static void testA() {
String [] str = {"Java", "C++", "Php", "C#", "Python", "C++", "Java"};
for (String elementA:str ) {
System.out.print(elementA + " ");
}
ListString list = new ArrayListString();
for (int i=0; istr.length; i++) {
if(!list.contains(str[i])) {
list.add(str[i]);
}
}
System.out.println();
String[] newStr = list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组
for (String elementB:newStr ) {
System.out.print(elementB + " ");
}
System.out.println();
}
所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。
举例:
int a[10]; 说明整型数组a,有10个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。
javascript怎样数组去重并排序.效率最快的
以下是我针对网上三种高效率方法总结与效率测试,如果大家有更好的意见或建议也可以提出,大家共勉学习。
数组去重法1:
Array.prototype.unique1 = function(){ console.time("数组去重法1"); //记录开始执行的时间 var arr = []; //创建一个临时数组 var obj = {}; //创建一个空对象 for(var i = 0; i this.length; i++){ //遍历当前要去重的数组 if(!obj[this[i]]){ //判断obj对象中是否存有当前项,没有则执行 arr.push(this[i]); //将当前项push到临时数组中 obj[this[i]] = 1; //将当前项存入obj对象 } } console.timeEnd("数组去重法1"); //记录结束执行的时间 return arr; }
数组去重法2:
Array.prototype.unique2 = function(){ console.time("数组去重法2"); //记录开始执行的时间 var arr = []; //创建一个临时数组 for(var i = 0; i this.length; i++){ //遍历当前要去重的数组 if(arr.indexOf(this[i]) == -1){ //判断临时数组中是否存有当前项,没有则执行 arr.push(this[i]); //将当前项push到临时数组中 } } console.timeEnd("数组去重法2"); //记录结束执行的时间 return arr; }
数组去重法3:
Array.prototype.unique3 = function(){ console.time("数组去重法3"); //记录开始执行的时间 var arr = [this[0]]; //创建一个临时数组,并将要去重数组的第一项存入临时数组 for(var i = 1; i this.length; i++) { //从要去重数组第二项开始遍历 if (this.indexOf(this[i]) == i){ //判断临时数组中是否存有当前项,没有则执行 arr.push(this[i]); //将当前项push到临时数组中 } } console.timeEnd("数组去重法3"); //记录结束执行的时间 return arr; }
效率测试方法:
var arr1 = []; //创建一个要去重的数组 for(var i = 0; i 200000; i++){ //遍历200000个数据 arr1.push(parseInt(Math.random() * 10) + 1); //将所有数据返回为随机数(1-10之间)的数, 并push到要去重的数组中 } console.log(arr1.unique1()); //打印数组去重法1的执行时间 console.log(arr1.unique2()); //打印数组去重法2的执行时间 console.log(arr1.unique3()); //打印数组去重法3的执行时间
效率测试结果:
总结
以上就是关于JavaScript几种数组去重的方法效率测试,希望测试的结果对大家选择使用数组去重方法能有所帮助,如果有疑问大家可以留言交流。谢谢大家对脚本之家的支持。
关于java数组去重最优解法和java实现数组去重的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。