1. 程式人生 > >int[]陣列和Sting[]陣列去重的幾種方式

int[]陣列和Sting[]陣列去重的幾種方式

(一)int[ ]型別的:

/*int[]陣列去重複
* */
public class TIntDeleteRepeat {
    /*
      1.0 測試陣列int[] 去重複
       ①:無序可以先排序 int[]  intArry ={5,4,8,2,1,10 }--->呼叫Arrays.sort(intArry)方法
       ②:再去重
    * */
//    public static   int[] a={1,2,4,3,9,5,6,2};
public static void main(String[] args) {

        int[] a = {1, 2
, 4, 6, 2,7,5,5,8}; String[] b={"a","ad","b","c"}; // Arrays.sort(a); int[] now=removeRepeat3(a); System.out.println(Arrays.toString(now)); // TIntDeleteRepeat.removeRepeat2(afdd); // System.out.println(c.getClass().getName()); // System.out.println("after "+after.length);
// System.out.println(); // // System.out.println(Arrays.toString(after)); // System.out.println(a.getClass().getSuperclass().getName()); } /* * (1)int[]陣列去重方法一 for迴圈巢狀: * */ public static int[] removeRepeat1(int[] a){ int[] tempArr=new int[a.length]; int t=0; for
(int i=0;i<a.length;++i){ boolean isTrue=true; for (int j=i+1;j<a.length-1;++j) { if (a[i] == a[j]) { isTrue = false; break; } } if (isTrue){ tempArr[t]=a[i]; ++t; } } System.out.println(Arrays.toString(tempArr)); int[] afterArr=new int[t]; System.arraycopy(tempArr,0,afterArr,0,t); System.out.println(Arrays.toString(afterArr)); return afterArr; } /* * (2)陣列去重 方法二 list--ArrayList集合,contains方法,再放回陣列: * */ public static int[] removeRepeat2(int[] arr){ List<Integer> list=new ArrayList<>(); for (int i=0;i<arr.length-1;++i){ if (!list.contains(arr[i])){ list.add(arr[i]); } } Integer[] in=(Integer[]) list.toArray(new Integer[list.size()]); int[] need=new int[in.length]; int i=0; for (Integer integer:in){ need[i]=integer; ++i; } return need; } /* * (三)方法3[不用自動排序]:利用Set唯一性去重,要排序的化,利用TreeSet; * */ public static int[] removeRepeat3(int[] arr){ Set<Integer> set=new TreeSet<>(); for (int i=0;i<arr.length;++i){ set.add(arr[i]); } int[] needArr=new int[set.size()]; int i=0; for (Integer integer:set){ needArr[i]=integer; ++i; } return needArr; } }

(二)String[ ]陣列型別的去重:

/*
* String[]陣列去重複
* */
public class TStringDeleteRepeat {
    public static void main(String[] args) {
        String[] array = {"a", "d", "c", "e", "a", "f"};
        String[] need=TStringDeleteRepeat.removeRepeat3(array);
        System.out.println(Arrays.toString(need));
    }

    /*1.0 用兩層for迴圈遍歷
    * */
public static String[] removeRepeat1(String[] str) {
        String[] temp = new String[str.length];
        int k = 0;
        for (int i = 0; i < str.length; ++i) {
            boolean flag = true;
            for (int j = i + 1; j < str.length-1; ++j) {
                if (str[i]==str[j]){
                    flag=false;
                    break;
                }
            }
            if (flag){
                temp[k]=str[i];
                ++k;
            }
        }
        String[] need=new String[k];
        System.arraycopy(temp,0,need,0,k);
        return need;
    }

    /*(二)方法2:用ArrayList去重,contains()方法去重。
    * */
public static String[] removeRepeat2(String[] arr){
        List<String> list=new ArrayList<>(arr.length);
        for (int i=0;i<arr.length;++i){
            if (!list.contains(arr[i])){
                list.add(arr[i]);
            }
        }

        String [] need=new String[list.size()];
        int i=0;
        for (String s:list){
            need[i]=s;
            ++i;
        }
        return need;
    }

    /*
    * (三)方法3:利用Set唯一性,去除重複
    * */
public static String[] removeRepeat3(String[] arr){
        Set<String> set=new TreeSet<>();
        for (int i=0;i<arr.length;++i){
         set.add(arr[i]);
        }
        String[] need=new String[set.size()];
        int i=0;
        for (String str:set){
            need[i]=str;
            ++i;
        }
        return  need;
    }
}

相關推薦

int[]陣列Sting[]陣列方式

(一)int[ ]型別的:/*int[]陣列去重複 * */ public class TIntDeleteRepeat { /* 1.0 測試陣列int[] 去重複 ①:無序可以先排序 int[] intArry ={5,4,8,2,1,

JS陣列方法

JS陣列去重幾種方法 1. 利用ES6 Set去重(ES6中最常用) ``` function unique(arr){   return Array.from(new Set(arr)); } var arr=[1,1,2,3,3,3,4,4,4,5,5,'1','tr

ASP.NET MVC下自定義錯誤頁展示錯誤頁的方式

提供服務 one url attribute 運行 16px execute 釋放 namespace 在網站運行中,錯誤是不可避免的,錯誤頁的產生也是不可缺少的。 這幾天看了博友的很多文章,自己想總結下我從中學到的和實際中配置的。 首先,需要知道產生錯誤頁的來源,一種

.NET中JSON的序列化反序列化的方式

存儲 ati mas int font javascrip AS memory 種類 一、什麽是JSON JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制

Spark SQL初始化創建DataFrame的方式

hdf per () med 分析 exception vat 都是 tty 一、前述 1、SparkSQL介紹 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL產生的根本原因是其完全脫離了Hive的限制。

在C#中,Json的序列化反序列化的方式總結(轉載)

在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 什麼是JSON? JSON (JavaScript Object Notation) is a lightweight data-interchange format.

在C#中,Json的序列化反序列化的方式總結

在這篇文章中,我們將會學到如何使用C#,來序列化物件成為Json格式的資料,以及如何反序列化Json資料到物件。 首先,解釋一下json  Json【javascript物件表示方法】,它是一個輕量級的資料交換格式,我們可以很簡單的來讀取和寫它,並且它很容易被計算機轉化和生成,它是完全獨立於語言的。 Jso

Linux多程序執行緒同步的方式

   引用:http://community.csdn.net/Expert/TopicView3.asp?id=4374496 linux下程序間通訊的幾種主要手段簡介:    1. 管道(Pipe)及有名管道(named pipe):管道可用於具有親緣關係程序間的通訊,有名管道克服了管道沒有名字的

Json的序列化反序列化的方式

  【什麼是Json】           序列化:將物件轉換成位元組流的過程,這樣就可以輕鬆將物件儲存在磁碟檔案或資料庫中。           反序列化:序列化的逆過程,就是

Struts2的國際化訪問資原始檔的方式

資原始檔的命名:basename_language_country.properties JAVA國際化如果系統同時存在資原始檔、類檔案,系統將以類檔案為主,而不會呼叫資原始檔。對於簡體中文的Locale,ResourceBundle搜尋資源的順序是:(1)baseName_

java序列化反序列化得方式

一.Java序列化的作用 有的時候我們想要把一個Java物件變成位元組流的形式傳出去,有的時候我們想要從一個位元組流中恢復一個Java物件。例如,有的時候我們想要 把一個Java物件寫入到硬碟或者傳輸到網路上面的其它計算機,這時我們就需要自己去通過java把相應的物件

JNDI學習總結(二):tomcat配置全域性私有JNDI資料來源的方式

下面介紹幾種常用的JNDI資料來源配置方式環境:IDEA+tomcat7全域性:1. 修改tomcat的context.xml的<context>標籤  在<context>標籤

JavaScript陣列方式

1.利用ES6 Set的內容不重複的特性 function unique (arr) { return Array.from(new Set(arr)) } var arr = []; console.log(unique(arr)); 2.利用for迴圈巢狀比較,splice

java對一個int陣列進行排序、

思路: 1、使用 HashSet 進行去重 2、將 HashSet 變為 TreeSet 3、使用 TreeSet 進行排序

JS 陣列陣列物件的合併方法

這次對陣列的操作,我們使用es6的新語法來完成,所以在看下邊程式碼之前,我們要了解我們下邊要用到的es6中的set集合,和for...of 方法: 首先介紹set集合: ES6提供了新的資料結構Set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值。 Set函式可以接受一個數組(

陣列方法

方法一: var arr=[21,21,2,3,5,77,2]; var arr2=[]; for(var i=0;i<arr.length;i++){ var flag=true; for(v

陣列4方法

var arr=[1,2,3,4,2,3,1,5,3]; //去重 方法一:for..in... function removeRepeat(arr){ var newArr=[]; for(var i in arr){ if(newArr.indexOf(arr[i])&

陣列新增刪除,,排序,找到相同元素

小白前端一個,公司專案,裡面有一個數組增加,刪除,去重,排序,找到相同元素個數等等... 開始用push,splice等方法都無法達到自己效果,後來自己總結了,現在貼出來。 裡面有一些是RN程式碼,但是還是可以看懂的: this.setState({ obj: res }); let

陣列求和,刪除,

求和  1.常規for迴圈方法  function summing(arr){ let a=0; for(let i=0;i<arr.length;i++){ a

陣列方法 (不用集合)

第一種方法(只學到陣列的看): 定義一個新的陣列長度和舊陣列的長度一樣,儲存除去重複資料的舊陣列的資料和0, public static void main(String[] args) { // 獲取一個無重複元素的陣列 int[] arr