당신이하려는 일을 완전히 이해했는지는 확실치 않지만, 수집 한 것부터 나중에 구조화 된 테이블을 만들 수있는 방법으로 임의의 데이터 행을 저장하려고합니다. . 당신은 Column
를 구현하여 열을 만들 수있는, 그런
public interface Column {
String value;
}
: 내가이 경우 (자바를 사용하는 가정)에서하는 것은 단지 "값"속성을 것이다 매우 간단한 Column
인터페이스를 만드는 것입니다
그 객체는 실제 데이터를 포함하는 것
public class Key implements Column {
String value = new String();
public Key(String keyValue){
this.value = keyValue;
}
}
그래서 당신은 DataRow
라는 클래스를 만들 수 있습니다 (또는 당신이 원하는대로). 당신이 볼 수 있듯이
public class DataRow {
List<Column> data = new ArrayList<Column>();
public DataRow(String key){
this.setColumn(new Key(key));
}
public void setColumn(Column columnData) {
this.data.add(columnData);
}
public Column getColumn(Class column){
for(Column c : this.data){
if(c.getClass().equals(column)){
return c;
}
}
return null;
}
}
, 당신은 그에게 새로운 Column
객체를 제공하여 방법 setColumn()
를 호출 할 수 있습니다 : 예를 들어, 데이터를 추가 할 것이라고 클래스의 메소드를 가질 수있다. 이렇게하면 임의 유형의 데이터를 DataRow
개체에 추가 할 수 있습니다.
public List<DataRow> createTable(List<DataRow> data, List<Class<? extends Column>> columns){
List<DataRow> table = new ArrayList<DataRow>();
for(DataRow row : data){
DataRow ret = new DataRow(row.getColumn(Key.class).value);
for(Class column : columns){
if(row.getColumn(column.getClass()) != null)ret.setColumn(row.getColumn(column.getClass()));
}
table.add(ret);
}
return table;
}
이 허용됩니다 : 그럼, 일부 테이블을 만들기 위해, 당신은 지정된 행의 데이터가있는 경우에만 개체를 반환 할 것 DataRows
의 List
, 및 클래스의 List
를받는 함수를 가질 수있다 데이터를 사용하여 테이블을 만들고 테이블에 포함 할 열을 만들 수 있습니다.
아이디어를 전달하기 위해이 코드를 작성했는데, 지금은 꽤 지저분합니다. 그러나 이것이 약간의 방법으로 도움이되기를 바랍니다.
이 불일치 데이터가 무엇인지 조금 더 구체적으로 알려주시겠습니까? 어쩌면 각각의 "시스템"에서 하나씩 두 가지 예를 들어 보겠습니다. – Hassan
패턴은 시스템과 독립적이어야합니다. 모든 시스템에서 작동하는 공통 키를 가지고 있으며 궁극적으로 데이터를 링크하는 데 사용되는 시스템이 어떤 시스템인지는 중요하지 않습니다. –
"각 열에 수백만 개의 행이 포함될 수 있습니다"라고 말하면 데이터가 이러한 "열"개체에 포함된다는 의미입니까? – Hassan