티스토리 뷰

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));

상단 결과 값이 false라고 뜨는 이유는 ar1과 ar2의 형태가 동일해도 new를 사용하여 메모리에 올라가면 주소값이 달라지기 때문이다. 따라서 두 객체가 동일하다는 true 를 출력받기 위해서는 equals 함수를 overridingg하여 오버라이딩 된 값을 받으면 된다.

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
32
33
34
35
36
37
38
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;
        else
            return false;
    }
}
 
public class ArraysEquals {
    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));
 
    }
 
}
 
cs

 

 

 


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);
		}
	}

 

compareTo 비교할 때 사용 

사전 순 정렬 a.k.a lexicographically

 

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
32
33
34
35
36
37
38
39
import java.util.Arrays;
 
class Person implements Comparable {
    private int age;
    private String name;
 
    public Person(String name, int age) {
        this.age = age;
        this.name = name;
    }
 
    @Override
    public int compareTo(Object o) {
        Person p = (Person) o;
        return this.name.compareTo(p.name);
 
    }
 
    public String toString() {
        return name + ": " + age;
    }
 
}
 
public class ArraysName {
    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);
        System.out.println(Arrays.toString(ar));
 
    }
 
}
 
cs

 

번외) 사전 역순 정렬 원하면

 

 

 


3. 위의 문제에서 이름 글자 수가 많은 순으로 정렬이 되게끔 person 객체를 만드시오.

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
32
33
34
35
36
37
38
import java.util.Arrays;
 
class Person implements Comparable {
    private int age;
    private String name;
 
    public Person(String name, int age) {
        this.age = age;
        this.name = name;
    }
 
    @Override
    public int compareTo(Object o) {
        Person p = (Person) o;
        return p.name.length() - this.name.length(); 
    }
 
    public String toString() {
        return name + ": " + age;
    }
 
}
 
public class ArraysName {
    public static void main(String[] args) {
 
        Person[] ar = new Person[3];
        ar[0= new Person("Lee11"29);
        ar[1= new Person("Goo111"15);
        ar[2= new Person("Soo1111"37);
 
        Arrays.sort(ar);
        System.out.println(Arrays.toString(ar));
 
    }
 
}
 
cs

 

 

 


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

"PM:08:45"

 

ㄹㄴㅇㄹㄴㅇㄹ

 

 


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());
		}

 

 

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
32
33
34
35
36
37
38
39
import java.util.Arrays;
 
class Rectangle implements Comparable {
    private int x, y;
 
    public Rectangle(int x, int y) {
        this.x = x;
        this.y = y;
    }
 
    public int getArea() {
        return x * y;
    }
 
    @Override
    public int compareTo(Object o) {
        Rectangle rec = (Rectangle) o;
        return rec.getArea() - this.getArea();
 
    }
 
 
}
 
public class ArraysRecArea {
    public static void main(String[] args) {
 
        Rectangle[] recArr = { new Rectangle(66), new Rectangle(55), new Rectangle(1010),
                                    new Rectangle(1212), new Rectangle(1111) };
 
        Arrays.sort(recArr);
        for (Rectangle rec : recArr) {
            System.out.println(rec.getArea());
        }
 
    }
 
}
 
cs

 

 

 

 


6. html 에서 아래의 태그를 설명하시오.

-<br>
-<li>
-<ol>
-<ul>

br태그는 다음 줄로 가는 행바꿈 태그를 의미한다.

블로그나 인터넷 카펫를 예로 들자면 우측 또는 좌측에 게시판이 존재한다.

html에서는 이것을 리스트라고 부르며 리스트를 구성할 때 순서를 나타내는 방법에는 여러가지가 있다.

숫자로 진행되는 리스트를 제공하고 싶을 떄는 ol태그를 사용한다.

1
2
3
4
5
6
7
8
    <ol type='i'>
        <li>서울</li>
        <li>경기</li>
        <li>충청</li>
        <li>강원</li>
        <li>경상</li>
        <li>전라</li>
    </ol>
cs

1
2
3
4
5
6
7
8
    <ol start='5'>
        <li>서울</li>
        <li>경기</li>
        <li>충청</li>
        <li>강원</li>
        <li>경상</li>
        <li>전라</li>
    </ol>
cs

 

 

 

그리고 숫자 구분없는 점으로 된 리스트를 제공하고자 할 땐 ul태그를사용한다.

1
2
3
4
5
6
7
    <ul>
        <li>menu1</li>
        <li>menu2</li>
        <li>menu3</li>
        <li>menu4</li>
        <li>menu5</li>
    </ul>
cs

마지막으로 li 리스트는 내용을 아래로 떨어트린다는 것이다. 

옆으로가 아니라 아래로 생성 

 

 

'면접준비 > KOSMO 허쌤 숙제' 카테고리의 다른 글

학습정리-11-04  (0) 2021.11.04
학습정리-11-03  (0) 2021.11.03
학습정리-11-01  (0) 2021.11.01
학습정리-10-29  (0) 2021.10.29
학습정리-10-28(Error와 Exception)  (0) 2021.10.28
댓글