Java에서 ArrayList를 어떻게 2 차원 배열 Object [] []로 변환합니까?ArrayList를 2D 배열로 변환
의견 : XML 파일에는 연락처 목록 (예 : 이름, 주소 ...)이 포함되어 있습니다. 이 정보를 얻을 수있는 유일한 방법은 나에게 주어질 ArrayList를 이용하는 것입니다. 이 배열 목록의 내용을 순서대로 Java Swing 테이블에 저장해야하므로 개체의 2 차원 배열로 변환하려고합니다.
Java에서 ArrayList를 어떻게 2 차원 배열 Object [] []로 변환합니까?ArrayList를 2D 배열로 변환
의견 : XML 파일에는 연락처 목록 (예 : 이름, 주소 ...)이 포함되어 있습니다. 이 정보를 얻을 수있는 유일한 방법은 나에게 주어질 ArrayList를 이용하는 것입니다. 이 배열 목록의 내용을 순서대로 Java Swing 테이블에 저장해야하므로 개체의 2 차원 배열로 변환하려고합니다.
나는 각 연락처 속성의 수를했다 알고, 그렇게하는 "방법"을 찾아 관리 (6). 그래서 ArrayList listofContacts
int numberOfContacts = listofContacts.size()/6;
Object[][] newArrayContent = new Object[numberOfContacts][6];
for(int x = 0; x<numberOfContacts; x++){
for(int z = 0; z < 6; z++){
int y = 6 * x;
newArrayContent [x][z] = list.get(y+z);
System.out.println(newArrayContent [x][z].toString());
}
}
정말 원하는 것은 ArrayList를 정렬하는 것입니다. 이를 위해 Contacts 클래스는 Comparator 메서드를 구현해야합니다.
확인에 대한 예는 다음 페이지 : http://www.java-examples.com/sort-java-arraylist-descending-order-using-comparator-example
난 당신이 자바 객체로 XML을 구문 분석하고 사용자 정의 데이터 객체에 객체를 저장하는 것이 좋습니다 것입니다. 이렇게하면 사용 가능한 데이터에서 더 많은 작업을 쉽게 수행 할 수 있습니다.
Here은 수행 방법에 대한 자습서입니다.
public Object[] toObjectArray() {
return new Object[] { getName(), getAddress, /* ... */ };
}
과 같이 사용 :
간단한 방법은이 같은 Contact
에 메서드를 추가하는 것입니다
ArrayList<Contact> contacts = /* ... */
Object[][] table = new Object[contacts.size()][];
for (int i = 0; i < contacts.size(); i++) {
table[i] = contacts.get(i).toObjectArray();
}
난 당신이 JTable(Object[][], Object[])
생성자를 사용하는 가정.
ArrayList<Contact>
을 Object[][]
으로 변환하는 대신 JTable(TableModel)
생성자를 사용해보십시오. TableModel
인터페이스를 구현하는 사용자 정의 클래스를 작성할 수 있습니다. Sun은 귀하의 생활을 좀 더 쉽게하기 위해 연장하기 위해 이미 AbstractTableModel
클래스를 제공했습니다.
public class ContactTableModel extends AbstractTableModel {
private List<Contact> contacts;
public ContactTableModel(List<Contact> contacts) {
this.contacts = contacts;
}
public int getColumnCount() {
// return however many columns you want
}
public int getRowCount() {
return contacts.size();
}
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0: return "Name";
case 1: return "Age";
case 2: return "Telephone";
// ...
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
Contact contact = contacts.get(rowIndex);
switch (columnIndex) {
case 0: return contact.getName();
case 1: return contact.getAge();
case 2: return contact.getTelephone();
// ...
}
}
}
나중에
...List<Contact> contacts = ...;
TableModel tableModel = new ContactTableModel(contacts);
JTable table = new JTable(tableModel);
이 시도 고려 :
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(..);
list.add(..);
list.add(..);
list.add(..);
list.add(..);
list.add(..);
int[][] a = new int[list.size()][list.size()];
for(int i =0; i < list.size(); i++){
for(int j =0; j <list.size(); j++){
a[i][j]= list.get(j +(list.size() * i));
}
}
public static String[][] convertListIntoArrayObj(List<TeamMenuSelected> possibilities) {
int numberOfColums = 2;
int numberOfRows = possibilities.size();
String[][] values = new String[numberOfRows][numberOfColums];
for(int x=0; x<possibilities.size(); x++) {
TeamMenuSelected item = possibilities.get(x);
values[x][0] = item.getTeamName();
values[x][1] = item.getTeamCuisine();
}
return values;
}
목록에 무엇입니까? – pstanton
배열 목록이 1D인데, 귀하의 질문이 무엇을 의미하는지 이해하지 못했습니다 –
아마도 ArrayList에 배열 목록이 포함되어 있습니다 ... – ninesided