0
ArrayList
에 연속 달력 일을 추가하려고합니다. ArrayList
에 하루를 추가하고 Calendar.add 메서드를 사용하여 다음 날로 이동하면 ArrayList
이 자동으로 수정 된 이유, 즉 원래 항목이 1 일 추가 된 이유를 모르겠습니다. 다음은이 상황을 설명 할 내 코드입니다 :다른 Calendar 개체에 영향을 미치는 Java Calendar.add가 있습니까?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.ArrayList;
public class TestingStuff {
public static void main(String[] args) throws ParseException {
ArrayList<Calendar> cals = new ArrayList<Calendar>();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd");
Calendar startDate = Calendar.getInstance();
startDate.setTime(sdf.parse("Mar 25"));
cals.add(startDate);
Calendar secondDate = startDate;
secondDate.add(Calendar.DATE, 1);
Calendar thirdDate = Calendar.getInstance();
thirdDate.setTime(sdf.parse("Mar 26"));
if (cals.contains(thirdDate)) {
System.out.println("It does contain");
} else {
System.out.println("Sorry, it does not contain");
}
}
}
나는 ArrayList
26 마르 기대하고 있지 않다, 그러나 그것은 않습니다. 감사합니다.
안녕하세요. Array에 삽입 한 후 나중에 startDate와 secondDate가 모두 변경되면서 Array의 객체가 변경된 이유가 궁금합니다. – HasnainMamdani
ArrayList에 추가 된 것은'startDate' 및'secondDate'에 의해 참조 된 동일한 객체에 대한 참조였으며 객체의 사본이 아닙니다. 자세한 내용은 http://stackoverflow.com/questions/40480/is-java-pass-by-reference를 참조하십시오. – Alex