강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của atir12266460
atir12266460

câu hỏi đã được viết

Cấu trúc dữ liệu đã học trong Java

2-1장 (클래스, 객체, 참조변수 3) 마지막 값이 덮어씌워지는 문제

Viết

·

209

0

package sec02;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class PhoneBook {

static Person[] members = new Person[100];
static int count = 0;

public static void main(String[] args) {

try {
Scanner in = new Scanner(new File("./Chapter1/input.txt"));

while(in.hasNext()) {
members[count] = new Person();
members[count].name = in.next();
members[count].number = in.next();
count++;
System.out.println(count + members[count].name + members[count].number);
}

in.close();

} catch (FileNotFoundException e) {
System.out.println("No file");
return;
}

bubbleSort();

for (int i = 0; i < count; i++)
System.out.println(members[i].name + " : " + members[i].number);
}

static void bubbleSort() {
for (int i = count-1; i > 0; i--)
for (int j = 0; j < i; j++)
if (members[j].name.compareToIgnoreCase(members[j+1].name) > 0) {
Person tmp = members[j]; members[j] = members[j+1]; members[j+1] = tmp;
}
}
}

위와 같이 코드를 작성했는데요, 실행해보면 

1Susan01087945123

2Han01085462316

3Kim01012345678

4Lee01098765432

5Park01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Process finished with exit code 0

이렇게 출력할 때 마지막 값이 덮어씌워져서 나옵니다. while문에서 객체 생성하고 값 대입하는 것까지는 정상적으로 된 것 같은데, 덮어씌운 것 같은 결과가 나타나는 이유가 무엇일까요?

java

Câu trả lời

Câu hỏi này đang chờ câu trả lời
Hãy là người đầu tiên trả lời!
Hình ảnh hồ sơ của atir12266460
atir12266460

câu hỏi đã được viết

Đặt câu hỏi