티스토리 뷰

학습정리-11-02.txt
0.00MB

1. 아래의 결과 값은 false 출력이 된다. true 가 되도록 INum을짜시오.
  INum[] ar1 = new INum[3];
  INum[] ar2 = new INum[3];

  ar1[0] = new INum(1); ar2[0] = new INum(1);
  ar1[1] = new INum(2); ar2[1] = new INum(2);
  ar1[2] = new INum(3); ar2[2] = new INum(3);

  System.out.println(Arrays.equals(ar1, ar2));

import java.util.Arrays;

class INum{
	private int num;
	
	public INum(int num) {
		this.num = num;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(this.num == ((INum)obj).num)
			return true;
		return false;
	}
	
}

class ArraysNumTest {

	public static void main(String[] args) {
		INum[] ar1 = new INum[3];
		INum[] ar2 = new INum[3];

		ar1[0] = new INum(1);
		ar2[0] = new INum(1);
		ar1[1] = new INum(2);
		ar2[1] = new INum(2);
		ar1[2] = new INum(3);
		ar2[2] = new INum(3);

		System.out.println(Arrays.equals(ar1, ar2));
	}
}

Arrays 클래스의 equals는 배열의 내용물을 비용한다. (Object 클래스의 equals는 주소값을 비교)

다만 위의 경우에는 객체로 생성된 배열이다. 따라서 equals에 객체가 들어가 object클래스의 equals가 호출이 되기때문에 주소값을비교하게 된다. 따라서 내용물을 비교하려면 오버라이딩이 필요하다.

 

 

 

 


2. 아래에서 정렬이 이름 순으로 되게끔 하시오. Person 객체를 만드시오.
class ArrayObjSearch {
public static void main(String[] args) {

Person[] ar = new Person[3];    
ar[0] = new Person("Lee", 29);
    ar[1] = new Person("Goo", 15);
    ar[2] = new Person("Soo", 37);

    Arrays.sort(ar);
}
}

import java.util.Arrays;

class Person7 implements Comparable {
	private String name;
	private int age;

	public Person7(String name, int age) {
		this.name = name;
		this.age = age;
	}

	@Override
	public int compareTo(Object o) {
		return this.name.compareTo(((Person7)o).name);
	}

	@Override
	public String toString() {
		return name + ":" + age;
	}

}

class ArrayObjSearch {

	public static void main(String[] args) {
		Person7[] ar = new Person7[3];
		ar[0] = new Person7("Lee", 29);
		ar[1] = new Person7("Goo", 15);
		ar[2] = new Person7("Soo", 37);

		Arrays.sort(ar);

		System.out.println(Arrays.toString(ar));
	}
}

((Person7)o).name.compareTo(this.name)으로 하면 사전에 실린 순서를 내림차순으로 정렬

 

 

 

 


3.사람의 이름 글자 수가 많은 순으로 정렬을 되게끔 person 객체를 만드시오.

public static void main(String[] args) {
Person[] ar = new Person[3];

ar[0] = new Person("Lee1234", 29);
ar[1] = new Person("Goo12", 15);
ar[2] = new Person("Soo3", 37);

Arrays.sort(ar);

System.out.println(Arrays.toString(ar));
}

import java.util.Arrays;

class Person implements Comparable{
	private String name;
	private int age;
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	@Override
	public int compareTo(Object o) {
		Person p = (Person)o;
		//문자열 길이를 기준으로
		return (p.name.length() - this.name.length()); // 내림차순
		//return (this.name.length() - p.name.length()); 오름차순
	}
	
	@Override
	public String toString() {
		return name + ": " + age;
	}
}



public class ComparableTest {

	public static void main(String[] args) {
		Person[] ar = new Person[3];
		ar[0] = new Person("Lee1234", 29);
		ar[1] = new Person("Goo12", 15);
		ar[2] = new Person("Soo3", 37);
		
		Arrays.sort(ar); 
	
		for (Person person : ar) {
			System.out.println(person);
		}
	}

}

 

 

 

 


4.아래의 문자열을 ":" 구분자로 하여, PM 08 45 를 차례로 출력하는 프로그램을 작성 하시오.
"PM:08:45"

import java.util.StringTokenizer;

class StringTokenizerTest {

	public static void main(String[] args) {
		StringTokenizer st = new StringTokenizer("PM:08:45", ":");
		
		while(st.hasMoreTokens()) {
			System.out.print(st.nextToken() + " ");
		}
	}
}

 

 

 

 


5. 아래를 넓이 순서대로 출력하게끔 하시오.
Rectangle[] recArr = {new Rectangle(6, 6),new Rectangle(5, 5),new Rectangle(10, 10),new Rectangle(12, 12),new Rectangle(11, 11)};
      
Arrays.sort(recArr);      
           
for ( Rectangle rec: recArr) {
         System.out.println(rec.getArea());
      }

import java.util.Arrays;

class Rectangle implements Comparable {
	private int width, height;

	public Rectangle(int width, int height) {
		this.width = width;
		this.height = height;
	}

	public int getArea() {
		return width * height;
	}

	@Override
	public int compareTo(Object o) {
		Rectangle rec = (Rectangle) o;
		return rec.getArea() - this.getArea();
		// return ((Rectangle)o).getArea() - getArea();
	}
	
	@Override
	public String toString() {
		return String.valueOf(getArea());
	}  // 없어도...잘 출력되는...?
	
}

class ArrRecAreaTest {

	public static void main(String[] args) {
		Rectangle[] recArr = { new Rectangle(6, 6), new Rectangle(5, 5), new Rectangle(10, 10), new Rectangle(12, 12),
				new Rectangle(11, 11) };

		Arrays.sort(recArr);

		for (Rectangle rec : recArr) {
			System.out.println(rec.getArea());
		}
	}
}

 

 

 

 


6. html 에서 아래의 태그를 설명하시오.
-<br>              -<li>                -<ol>               -<ul>

 

  • <br/>또는 <br> : 행 바꿈(개행)으로 br은 열고 닫지 않고 하나만 써줘도 된다.
  • <li></li> : 리스트의 목록 태크로 단독으로 쓰이지 않고, <ol>이나 <ul> 안에 쓰인다.
  • <ol></ol> : 숫자 리스트로 번호를 매겨 목록을 나타낸다.
  • <ul></ul> : 모양으로 목록을 만든다.

See the Pen list tag by SE (@whaletree) on CodePen.

  • _blank는 새창에서 열기
  • _self는 현재 창에서 열기

 


TIP

자동완성 :  ! 치고 enter 또는 html 치고 아래 html:5 에서 enter

 

웹페이지에서 F12 누르면 디버깅 모드

 

alt + b : html을 웹브라우저에서 열어줌

 

자동 정렬 : ctrl + a 전체선택 후, ctrl +  shift + b 

주석 : ctrl + / 또는 직접 <!--             --> 입력

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함