2010-01-27 23 views
5

में एक ऐरेलिस्ट को कनवर्ट करना जावा में आप एक ArrayList को दो आयामी सरणी ऑब्जेक्ट [] [] में कैसे परिवर्तित करते हैं?एक 2 डी ऐरे

टिप्पणियों से: मैं आपको अधिक जानकारी के साथ समस्या का वर्णन करूंगा: एक एक्सएमएल फ़ाइल में संपर्कों की एक सूची शामिल है (जैसे नाम, पता ...)। इस जानकारी को प्राप्त करने का एकमात्र तरीका एक ऐरेलिस्ट के माध्यम से है, जो मुझे दिया जाएगा। जैसा कि मुझे जावा स्लिंग टेबल में ऑर्डर सूची में इस सरणी सूची की सामग्री को संग्रहीत करने की आवश्यकता है, मैं इसे ऑब्जेक्ट्स की दो आयामी सरणी में बदलने की सोच रहा था

+0

अपनी सूची में क्या है? – pstanton

+0

एक सरणी सूची 1 डी है, मुझे समझ में नहीं आता कि आपका प्रश्न क्या है –

+0

शायद ऐरेलिस्ट में ऑब्जेक्ट एरे की एक सूची है ... – ninesided

उत्तर

1

मैं "एक तरह से" ऐसा करने के लिए खोज करने में कामयाब, विशेषताओं की संख्या जानने के प्रत्येक संपर्क हैं (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()); 
     } 
    } 
0

जो आप वास्तव में चाहते हैं वह ArrayList को सॉर्ट करना है। ऐसा करने के लिए कि आपके संपर्क वर्ग को एक तुलनात्मक विधि को लागू करना होगा।

चेक एक उदाहरण के लिए अगले पृष्ठ: http://www.java-examples.com/sort-java-arraylist-descending-order-using-comparator-example

0

मेरा सुझाव होगा कि आप जावा वस्तुओं में अपने XML पार्स और एक कस्टम डेटा ऑब्जेक्ट में वस्तु की दुकान। इससे आपके लिए उपलब्ध डेटा पर कई संचालन करना आसान हो जाएगा।

Here यह कैसे करना है इसके बारे में छोटा ट्यूटोरियल है।

2

आसान तरीका Contact इस तरह के लिए एक विधि को जोड़ने के लिए है:

public Object[] toObjectArray() { 
    return new Object[] { getName(), getAddress, /* ... */ }; 
} 

और इस तरह इसका इस्तेमाल:

ArrayList<Contact> contacts = /* ... */ 
Object[][] table = new Object[contacts.size()][]; 
for (int i = 0; i < contacts.size(); i++) { 
    table[i] = contacts.get(i).toObjectArray(); 
} 
8

मुझे लगता है आप JTable(Object[][], Object[]) निर्माता का उपयोग कर रहे हैं।

इसके बजाय एक Object[][] में एक ArrayList<Contact> परिवर्तित करने की, JTable(TableModel) निर्माता उपयोग करके देखें। आप एक कस्टम क्लास लिख सकते हैं जो TableModel इंटरफ़ेस लागू करता है। आपके जीवन को थोड़ा आसान बनाने के लिए सूर्य ने आपके लिए 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); 
2

इस प्रयास करें:

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)); 
     } 
    } 
0
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; 
} 
संबंधित मुद्दे