「java数组去重最优解法」java实现数组去重

博主:adminadmin 2023-01-16 13:15:13 300

本篇文章给大家谈谈java数组去重最优解法,以及java实现数组去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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实现数组去重的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。