컬렉션 복사

Jan 05, 2024
컬렉션 복사
 
var은 값이 들어오면 타입결정
자바object랑 다트 dynamic이 비슷함
 
void main() { dynamic list = [1, 2, 3, 4]; list.add(5); dynamic newList = list; newList.add(6); print(newList); // 출력: [1, 2, 3, 4, 5, 6] print(list); // 출력: [1, 2, 3, 4, 5, 6] print(list.hashCode); print(newList.hashCode); }
 
💡
컬렉션 복사 List<Integer> newList = new ArrayList<>(list);
package ex14.example1; import java.util.ArrayList; import java.util.List; public class CopyEx01 { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); // 컬렉션 복사 List<Integer> newList = new ArrayList<>(list); System.out.println(list.hashCode()); System.out.println(newList.hashCode()); newList.add(5); System.out.println(list.hashCode()); System.out.println(newList.hashCode()); // 이전 // var newList = new ArrayList<>(); // for (int i = 0; i < list.size(); i++) { // newList.add(list.get(i)); // } } }
 
💡
통째로 복사, 부분 복사
package ex14.example1; class User { private int id; private String name; private String tel; 2) public User(User user) { this.id = user.getId(); this.name = user.getName(); this.tel = user.getTel(); } public User(int id, String name, String tel) { this.id = id; this.name = name; this.tel = tel; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", tel='" + tel + '\'' + '}'; } public int getId() { return id; } public String getName() { return name; } public String getTel() { return tel; } } public class CopyEx04 { public static void main(String[] args) { User u1 = new User(1, "ssar", "0102222"); // 1. 통째로 복사 1) User u2 = new User(u1.getId(), u1.getName(), u1.getTel()); 2) User u2 = new User(u1); // 2. 부분변경 복사 User u3 = new User(u1.getId(), u1.getName(), "0103333"); } }
 
💡
Data Transfer Object
package ex14.example1; import java.time.LocalDateTime; // Data Transfer Object class JoinDTO { private String username; // ssar private String password; private String email; public JoinDTO(String username, String password, String email) { this.username = username; this.password = password; this.email = email; } public String getUsername() { return username; } public String getPassword() { return password; } public String getEmail() { return email; } } class Member { private int no; private String username; private String password; private String email; private LocalDateTime createdAt; public Member(int no, JoinDTO dto) { this.no = no; this.username = dto.getUsername(); this.password = dto.getPassword(); this.email = dto.getEmail(); this.createdAt = LocalDateTime.now(); } } public class CopyEx05 { public static void main(String[] args) { JoinDTO d1 = new JoinDTO("ssar", "1234", "ssar@nate.com"); JoinDTO d2 = new JoinDTO("cos", "1234", "cos@nate.com"); Member m1 = new Member(1, d1); Member m2 = new Member(2, d2); // 이전 // LocalDateTime now = LocalDateTime.now(); // System.out.println(now); } }
 
Share article
RSSPowered by inblog