2013-05-22 3 views
-1

그래서이 클래스가 User이고 모든 사용자가 Books 세트를 가지고 있으며이 클래스 사이의 클래스와 계층을 정의하고 싶습니다. 그래서 내가 유니온을 만들면 결과적으로 두 명의 사용자간에 새로운 사용자가 생기기를 원하며 그의 책 세트는 한 사용자의 서적과 다른 사용자의 서적 사이의 통합이 될 것입니다. 당신은 단순히 User 클래스 내 정적 메소드를 제공 할 수객체의 합집합을 정의하는 클래스

+0

정확히 무엇이 질문입니까? 너 뭐 해봤 니? 또한, "코드를주세요"라고 말하기 전에 약간의 노력을 보여 주어야합니다. – Craig

+0

코드를 작성했는데, 이것을 올바르게 수행하는 방법을 알고 싶습니다. 감사합니다. –

답변

0

사전에

덕분에,를 호출하여 수행됩니다 인수로 두 User 인스턴스를 받아 UNION을 Book 세트 새로운 User 인스턴스를 반환 unionUser(User first, User second)을,라는 Set#unionAll() 방법.

세트 중복 요소를 포함 할 수 없습니다 컬렉션입니다 다음 java.util.Set 인터페이스를위한 JavaDoc에서 말했듯이, 때문에

public class User { 

    private Set<Book> books; //provide accessors 

    ... 
    public static User unionUser(User first, User second) { 
     User result = new User(); 
     result.setBooks(first.getBooks().unionAll(second.getBooks()); 
     return result; 
    } 
    ... 

} 

는 결과 Book 세트에는 중복이되지 않습니다. 그것은 수학 집합 추상화를 모델링합니다.

+0

답장을 보내 주셔서 감사합니다! 내가 너에게 또 다른 질문을 할 수 있을까? 만약 사용자와 책을 가지고있는 대신 사용자와 사용자 그룹이 있고, 사용자/사용자, 사용자/그룹of 사용자, 그룹/그룹 간의 결합을 원한다면 어떻게 될까요? 다시 한 번 감사드립니다! 편집 : 이제 ElementoUsuario 클래스와 ElementoUsuario에서 상속받은 두 클래스 인 Usuario와 GrupoUsuarios가 있습니다. –

+0

그런 다음 다시 user/user 인 user/groupofusers에 대해 Set # unionAll() 메서드를 사용할 수 있습니다 등. 설명을 위해이 기사를 읽으십시오. http://docs.oracle.com/javase/tutorial/collections/interfaces/set.html 건배! :) –

+0

나는 그것을 읽을 것이다, 고마워! –

0

사용자가 합집합이있는 경우 새 사용자를 반환하거나 그렇지 않으면 null을 반환하거나 사용자 두 명을 사용자 생성자에게 전달하고 유니온을 생성하게하려면 후자가 나에게 의미가 있습니다. 노조 결과는 일반 서적 (OOP의 경우)과 관계없이 새로운 사용자가됩니다.

하지만 무엇을 시도 했습니까? "최상의 방법"이 항상 최선의 방법은 아닙니다. 아이디어가 정확하고 코드가 작동하지 않는 경우 여기에서 도움을받을 수있는 최선의 상황에있는 경우)

+0

답장을 보내 주셔서 감사합니다! –

관련 문제