java中怎么找出数组中重复的数并去除?

Python031

java中怎么找出数组中重复的数并去除?,第1张

java中找出数组中重复的数并去除的代码如下:

 public static void testA() { 

    String [] str = {"Java", "C++", "Php", "C#", "Python", "C++", "Java"} 

    for (String elementA:str ) { 

      System.out.print(elementA + " ") 

    } 

    List<String> list = new ArrayList<String>() 

    for (int i=0 i<str.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个元素。

数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。

java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:

 

import java.util.Arraysimport java.util.Setimport java.util.TreeSet public class ceshi {    public static void main(String[] args) {         int[] testArr = { 5, 5, 1, 2, 3, 6, -7, 8, 6, 45, 5 }//新建一个int类型数组        System.out.println(Arrays.toString(testArr))        Set<Integer> set = new TreeSet<Integer>()//新建一个set集合        for (int i : testArr) {            set.add(i)        }        Integer[] arr2 = set.toArray(new Integer[0])        // 数组的包装类型不能转 只能自己转;吧Integer转为为int数组;        int[] result = new int[arr2.length]        for (int i = 0 i < result.length i++) {            result[i] = arr2[i]        }        System.out.println(Arrays.toString(arr2))    }}

运行结果如下:

通过HashSet剔除

    // 删除ArrayList中重复元素,add进去顺序就变了不考虑顺序的话可以使用

    public static void removeDuplicate1(List list) {

        HashSet h = new HashSet(list)

        list.clear()

        list.addAll(h)

        System.out.println(list)

    }