이 기사에서는 Java가 구현 한 배열 DEREPEATMENT 및 정렬 작업에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
다음은 배열 중복 제거 및 정렬 작업을 구현하는 Java 시연입니다.
기사에 작성된 예제 소스 코드는 JDK1.6+, Junit4.8.2를 기반으로합니다.
java.util.Arrays.sort()
int[] , long[] , short[] , char[] , byte[] , float[] , double[] , Object[]
참조 샘플 코드 스 니펫은 다음과 같습니다
// int 배열을 선언하고 int [] intarry = {5,4,7,8,2,0,9,3,6,10}; // int array array.sort (intarry)를 정렬합니다.Junit Test Class 소스 코드 :
package com.gjnote.test.array; import java.util.arrays; import org.junit.test; public class testArrayssort {// int 배열을 선언하고 int [] intarry = {5,4,7,8,8,8,2,0,1,9,6,10};@the intpublic void test () {// int areray. arrays.sort (intarry); for (int i = 0; i <intarry.length; i ++) {system.out.println (intarry [i]);} system.out.println (arrays.tostring (intarry));}}콘솔 출력
0
1
2
3
4
5
6
7
8
9
10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
java.util.Collections.sort()
객체 비교는 내부 compare 방법을 구현하여 실현됩니다.
샘플 코드 스 니펫은 다음과 같습니다
/*** Collections.sort (list, comparator () {});*목록 배열 정렬에 권장되는 권장 메소드*/public void collectionsortelement1 (list list) {collections.sort (list, new comparator () {@overridepublic int compare (문자열 O1, String O2) {// 실제 분류 요구에 따라 비교 대상 순서 조정 (O2) .compareto (O1);}});}Java는 중간임을 목록에 구현합니다
방법 1 : 루프 트래버스에 사용하여 목록에서 중복 요소를 제거합니다.
코드 스 니펫은 다음과 같습니다
list templist = new arraylist (); // (문자열 문자열 : originallist) {if (! templist.contains (string)) {templist.add (string);}}에 대한 원래 목록에서 중복 요소를 제거합니다.방법 2 : 세트를 제거하십시오
코드 스 니펫은 다음과 같습니다
// 세트는 세트 요소의 고유성을 사용하고 세트 세트 세트 = new Hashset (OriginalList); list templist = new arraylist (set);
방법 3 : 트리셋을 사용하여 중복 요소를 제거하십시오
treeset treeset = new Treeset (OriginalList); listtemplist = new arraylist (); templist.addall (treeset); // treeset 기본 정렬 순서가 올라가고 실제 상황에 따라 역 순서가 필요한지 여부를 추가합니다. Collections.Reverse (Templist);
Java는 정렬 후 목록을 단단히 구현합니다
Junit 테스트 목록 중복 제거 및 정렬 소스 코드
package com.gjnote.test.array; import java.util.arraylist; import java.util.collections; import java.util.comparator; import java.util.hashset; import java.util.list; import java.util.set; import java.util.treeset; import org.junit.; org.junit.test;/*** 테스트 클래스*목록 배열 de-heavy element sort ** @version 1.0*@author www.gjnote.com **/public class testlistarraysort {private listoriginallist = null; @be-forepublic void setup (originallic = new arraylist); {originalList.add("element" + i);// add repeat elementif(i % 2 == 0) {originalList.add("element" + i);}}}/*** Output List element* @param list*/private void outputList(List list) {for (int i = 0; i < list.size(); i++) {system.out.println (list.get (i));}}}/*** Collections.sort (list, comparator () {});*권장 정렬 메소드*/private void collectionsortelement (list start = system.currenttimeMillis (); collection (list, new comparator ()) {@string o1, n) 실제 분류에 따라 비교 대상 순서를 조정해야합니다. O2.comPareto (O1);}}); // outputList (templist); System.out.println ( "collections.sort :" + (system.currenttimemillis () - 시작) + "ms"); *** Du Replyversal을 제거하기 위해 사용하여 *** replents를 제거합니다. 정렬*/@testpublic void testforloopremeverepeatelement () {System.out.println ( "testforloopremeverepeateLement"); long start = system.currenttimeMillis (); list templist = new arrayList (); // (String String : OriginalList)에 대한 중복 요소를 제거합니다. {! templist.contains (string)) {templist.add (String);} // 정렬 COLLESTELENTE (templist); "ontplist); SYSTEM.PRINT. " + (System.CurrentTimeMillis () -Start) +"MS ");}/*** 테스트 세트를 중복 제거하기 위해 중복 요소를 횡단하고 제거합니다. * collections.sort를 사용합니다 (list, comparator () {}); 정렬 **/@testpublic void testsetremeverepeatelement () {system.out.println ( "testseteMeverEpeAtElement"); Long Start = System.currentTimeMillis (); // 정렬 (이론적 값 : 먼저 정렬 된 다음 중복 제거는 나중에 정렬하는 것보다 더 효율적입니다) COLLECTIONSSORTELEMENT (OriginAllist); // 세트 세트는 세트 요소의 유일성을 사용합니다. 정렬 시간 시간 //collectionssortelement(templist) ;//outputlist(templist) ;system.out.println("collections.sort 정렬, 망상으로 설정하십시오 : " + (System.currenttimeMillis () - 시작)}); 정렬*/@testpublic void testtreeStremeverepeatElement () {system.out.println ( "testTreesTremeVerePeatElement"); long start = system.currenttimeMillis (); treesettreeset = new treeset (OriginalList); listTemplist = new ArrayList (); templist.addall (treeset); // treeset 기본 정렬은 오름차순 순서를 추가하고 실제 상황에 따라 반전 정렬이 필요한지 추가합니다. collections.reverse (templist); // outputList (templist); System.out.println ( "treeset과 정렬, 중복 요소를 제거합니다 :" + (System.currentTimeMillis () - 시작) + "ms");}@testpublic void testmethods () {// outputlist (OriginalList); // list tetherned emprolication emplication emplication. TestSetRemeverePeatElement (); // 14MStestTreeStremeverePeatEment (); // 20ms // testforloopremeverepeatElement (); // 2525ms}}testsetremeverepeatelement () 콘솔을 실행하여 결과를 출력하십시오
TestSetRemeverePeatElement
Collections.sort : 8ms
Collections.SORT 정렬, 중간으로 설정하십시오 : 14ms
testtreesetremeverepeatelement () 콘솔을 실행하여 결과를 출력하십시오
TestTreesetRemeverePeateMentement
트리 셋으로 정렬하고 중복 요소를 제거하십시오 : 20ms
testforloopremeverepeatelement () 콘솔을 실행하여 결과를 출력하십시오
TestForLoopRemeverePeateMent
Collections.sort : 7ms
for loop to traverse 목록을 사용하고 중복 요소를 제거하십시오 : 2525ms
추신 : 참조를위한 몇 가지 관련 도구는 다음과 같습니다.
온라인 제거 도구 :
http://tools.vevb.com/code/quchong
온라인 텍스트 반복 도구 :
http://tools.vevb.com/aiddesign/txt_quchong
온라인 애니메이션 데모 삽입/선택/버블/병합/힐/빠른 정렬 알고리즘 프로세스 도구 :
http://tools.vevb.com/aiddesign/paixu_ys
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.