2013년 7월 26일 금요일

Arrays 클래스를 이용한 리스트 만들기 001

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/*
 * Array를 List로 만들 때 흔히 Arrays.asList( .. )를 사용했었는데
 * 여기에는 큰 단점(?) 이 있다.
 * 이렇게 만들어지는 List는 흔히 unmodifiable이라 하여 remove 및 add를
 * 할 수 가 없다.
 * 해서 사용되는 다른 대안이 있는데
 * 1번은 remove/add에 이 같은 Exception이 발생하고
 * 2번은 reference가 그대로 전해지는 스타일이고
 * 3번은 copy이기 때문에 reference는 없어지지만 불필요하게 2개
 * 생성되는 케이스가 될 수 있다.
 */
public class ArraysTest014 {
public static void main(String[] args) {

String[] strArrays = { "a", "b", "c", "d", "f", "g", "h", "i" };

// 1
List<String> strList1 = Arrays.asList(strArrays);

// 2
List<String> strList2 = new ArrayList<String>();
Collections.addAll(strList2, strArrays);

// 3
List<String> strList3 = new ArrayList<String>(Arrays.asList(strArrays));

System.out.println(strList3.remove(0));
}
}

Arrays 클래스를 이용한 배열 정렬 011

import java.util.Arrays;
import java.util.Comparator;

public class ArraysTest012 {
public static void main(String[] args) {
String[] strAr = {"한사람","두사람","세사람","네사람"};
System.out.println(Arrays.toString(strAr));
Arrays.sort(strAr);
System.out.println(Arrays.toString(strAr));


Arrays.sort(strAr, new Comparator<String>() {
public int compare(String obj1, String obj2) {
return -obj1.compareTo(obj2);
}
});
System.out.println(Arrays.toString(strAr));
}
}


import java.util.Arrays;
import java.util.Comparator;

public class ArraysTest013 {
public static void main(String[] args) {
Integer[] intAr = {23,12,45,64,23,41,53};
System.out.println(Arrays.toString(intAr));
Arrays.sort(intAr);
System.out.println(Arrays.toString(intAr));
Arrays.sort(intAr, new Comparator<Integer>() {
public int compare(Integer obj1, Integer obj2) {
return obj2-obj1;
}
});
System.out.println(Arrays.toString(intAr));
}
}

2013년 7월 25일 목요일

Arrays 클래스를 이용한 배열 정렬 010

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

public class ArraysTest011 {
public static void main(String[] args) {
Integer[] IntegerAr = {33,22,11,55,44,66,99,88,77};

System.out.println(Arrays.toString(IntegerAr));

Arrays.sort(IntegerAr);
System.out.println(Arrays.toString(IntegerAr));

Arrays.sort(IntegerAr, Collections.reverseOrder());
System.out.println(Arrays.toString(IntegerAr));
}
}

Arrays 클래스를 이용한 배열 정렬 009

import java.util.Arrays;
import java.util.Comparator;

public class ArraysTest010 {
 public static void main(String[] args) {
  Double[][] doubles = 
    new Double[][] { { 5.0, 4.0 }, { 1.0, 1.0 },
         { 4.0, 6.0 } };
  Comparator<Double[]> arrayComparator = new Comparator<Double[]>() {
   @Override
   public int compare(Double[] o1, Double[] o2) {
    return o1[0].compareTo(o2[0]);
   }
  };
  
  Arrays.sort(doubles, arrayComparator);
  for (Double[] arr : doubles) {
   System.out.println(Arrays.toString(arr));
  }
 }
}

Arrays 클래스를 이용한 배열 정렬 008

import java.util.Arrays;

public class ArraysTest009 {
public static void main(String[] args) {
int[] i = { -1, 0, 299, 2, 956, 0, 9, -900 };

// 정렬
Arrays.sort(i);

// 배열 순서 거꾸로
reverseArrayInt(i);

// 순서 뒤집어진 정수 배열을 문자열로 변환 후 출력
System.out.println(Arrays.toString(i));
}

public static void reverseArrayInt(int[] array) {
int temp;
for (int i = 0; i < array.length / 2; i++) {
temp = array[i];
array[i] = array[(array.length - 1) - i];
array[(array.length - 1) - i] = temp;
}
}
}

Arrays 클래스를 이용한 배열 정렬 007

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArraysTest008 {
public static void main(String[] args) {

String[] a = { "bbb", "AAA", "DDD", "똠방각하", "CCC", "aaa" };

// 정렬
Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);

// 배열 순서 거꾸로
reverseArray(a);

// 순서 뒤집어진 "문자열 배열"을 "문자열"로 변환 후 출력
System.out.println(Arrays.toString(a));
}

/**
* <T>형 배열의 순서를 역순으로.
*
* @param <T>
* @param array
*/
public static <T> void reverseArray(T[] array) {
T temp;
for (int i = 0; i < array.length / 2; i++) {
temp = array[i];
array[i] = array[(array.length - 1) - i];
array[(array.length - 1) - i] = temp;
}
}
}

Arrays 클래스를 이용한 배열 정렬 006

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArraysTest007 {
public static void main(String[] args) {

String[] a = { "bbb", "AAA", "DDD", "똠방각하", "CCC", "aaa" };

// 정렬
Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);

// 배열 순서 거꾸로
reverseArrayString(a);

// 순서 뒤집어진 "문자열 배열"을 "문자열"로 변환 후 출력
System.out.println(Arrays.toString(a));
}

public static void reverseArrayString(String[] array) {
String temp;
for (int i = 0; i < array.length / 2; i++) {
temp = array[i];
array[i] = array[(array.length - 1) - i];
array[(array.length - 1) - i] = temp;
}
}
}

Arrays 클래스를 이용한 배열 정렬 005

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArraysTest006 {
public static void main(String[] args) {

String[] a = { "bbb", "AAA", "DDD", "똠방각하", "CCC", "aaa" };

Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);

// 배열을 리스트로 변환
List<String> list = Arrays.asList(a);

// 리스트 뒤집어 주기
Collections.reverse(list);

// 리스트를 배열로 다시 변환
a = list.toArray(new String[list.size()]);

// 순서 뒤집어진 배열을 문자열로 변환 후 출력
String s = Arrays.toString(a);
System.out.println(s);

}
}

Arrays 클래스를 이용한 배열 정렬 003

import java.util.Arrays;

public class ArraysTest004 {
public static void main(String[] args) {
// 문자열 배열 정렬 (가나다 순으로 소팅)
   String strAr[] = {  "맹구","배용준","땡칠이","장동건",
                  "강수정","송창식","황당해","고은아"
                  };

   System.out.println(Arrays.toString(strAr));
   Arrays.sort(strAr);
   System.out.println(Arrays.toString(strAr));
}
}

//=============================================

import java.util.Arrays;

public class ArraysTest005 {
public static void main(String[] args) {
String[] strAr = { "bbb", "AAA", "DDD", "CCC", "aaa" };

System.out.println(Arrays.toString(strAr));

// 대소문자 구분하여 정렬
Arrays.sort(strAr);
System.out.println(Arrays.toString(strAr));

// 대소문자 구분 없이 정렬
Arrays.sort(strAr, String.CASE_INSENSITIVE_ORDER);
System.out.println(Arrays.toString(strAr));
}
}

Arrays 클래스를 이용한 배열 정렬 002

import java.util.Arrays;

public class ArraysTest003 {
public static void main(String[] args) {
// 1. byte형 정렬
byte[] byteAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(byteAr,0,3);
System.out.println(Arrays.toString(byteAr));

// 2. char형 정렬
char[] charAr = {'가','나','A','a'};
Arrays.sort(charAr,0,3);
System.out.println(Arrays.toString(charAr));

// 3. short형 정렬
short[] shortAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(shortAr,0,3);
System.out.println(Arrays.toString(shortAr));

// 4. int형 정렬
int[] intAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(intAr,0,3);
System.out.println(Arrays.toString(intAr));

// 5. long형 정렬
long[] longAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(longAr,0,3);
System.out.println(Arrays.toString(longAr));

  // 6. double형 정렬
  double[] doubleAr = {120.0, 0.5, 0.0, 999.0, 77.3};
  Arrays.sort(doubleAr,0,3);
  System.out.println(Arrays.toString(doubleAr));

  // 7. 문자열 정렬
  String[] strAr = {"Zoe", "Alison", "David"};
  Arrays.sort(strAr,0,2);
  System.out.println(Arrays.toString(strAr));
     

}
}

Arrays 클래스를 이용한 배열 정렬 001

import java.util.Arrays;

public class ArraysTest002 {
public static void main(String[] args) {
// 1. byte형 정렬
byte[] byteAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(byteAr);
System.out.println(Arrays.toString(byteAr));

// 2. char형 정렬
char[] charAr = {'가','나','A','a'};
Arrays.sort(charAr);
System.out.println(Arrays.toString(charAr));

// 3. short형 정렬
short[] shortAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(shortAr);
System.out.println(Arrays.toString(shortAr));

// 4. int형 정렬
int[] intAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(intAr);
System.out.println(Arrays.toString(intAr));

// 5. long형 정렬
long[] longAr = {5,4,7,1,9,8,2,5,0,6,5};
Arrays.sort(longAr);
System.out.println(Arrays.toString(longAr));

  // 6. double형 정렬
  double[] doubleAr = {120.0, 0.5, 0.0, 999.0, 77.3};
  Arrays.sort(doubleAr);
  System.out.println(Arrays.toString(doubleAr));

  // 7. 문자열 정렬
  String[] strAr = {"Zoe", "Alison", "David"};
  Arrays.sort(strAr);
  System.out.println(Arrays.toString(strAr));
     

}
}

Arrays 클래스를 이용한 배열 출력 001

import java.util.Arrays;
import java.util.Random;

public class ArraysTest001 {
public static void main(String[] args) {
// Arrays 클래스를 이용한 배열 출력
// Array.toString(배열명)
char charAr[]= new char[26];
int  temp;
Random rnd = new Random();

for(int i=0;i<charAr.length;i++) charAr[i]='\0';//배열 초기화
for(int i=0;i<charAr.length;i++){ // 중복없이 A~Z까지 채우기

do{
temp = rnd.nextInt(26);
}while(charAr[temp]!='\0');
charAr[temp] = (char)(i + 'A');
}
System.out.println(Arrays.toString(charAr));

Arrays.sort(charAr); // 배열의 정렬

System.out.println(Arrays.toString(charAr));

}
}