String Array Manipulation

T

thomasjbs

Anyone know how to initialize an array without sizing it first?

// This works - returns a list of files and directories
File dlist = new File("C:\\");
String[] files = dlist.list();

// To get directories only:
for (int x=0;x<files.length;x++) {
File filename = new File("C:\\"+files[x]);
if ( filename.isDirectory()) {
dirs[cnt++] = filename.getParent() +
filename.getName();
}
}

But how do I initialize dirs?

// This results in uninitialized variable error
String[] dirs;

// This results in an array that is too large (causes empty lines when
sending to JComboBox)
String[] dirs = new String[20];
 
I

Ingo R. Homann

Hi,

Take a look at the classes ArrayList<String> or LinkedList<String>.

Hth,
Ingo
 
D

Dieter Lamberty

Anyone know how to initialize an array without sizing it first?

// This works - returns a list of files and directories
File dlist = new File("C:\\");
String[] files = dlist.list();

// To get directories only:
for (int x=0;x<files.length;x++) {
File filename = new File("C:\\"+files[x]);
if ( filename.isDirectory()) {
dirs[cnt++] = filename.getParent() +
filename.getName();
}
}

But how do I initialize dirs?

// This results in uninitialized variable error
String[] dirs;

// This results in an array that is too large (causes empty lines when
sending to JComboBox)
String[] dirs = new String[20];

Hi

Beside the way Ingo mentioned you may use the method
listFiles(FileFilter) instead of list(). With that you will get an Array
of all Directories (as File Objects) and can use these.

File[] files = dlist.listFiles(new FileFilter() {
public boolean accept(File f) {
return f.isDirectory();
}
} );

Hope that helps
Dieter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top