2016-08-04 3 views
0

Я новичок, поэтому это, безусловно, общее знание, поэтому я пришел сюда, чтобы спросить.Улучшение эффективности простого массива

Если я хочу сделать очень большой массив, который содержит только разные слова, такие, как этот

adjectives[0] = "one"; 
adjectives[1] = "two"; 
adjectives[2] = "three"; 
adjectives[3] = "four"; 
adjectives[4] = "five"; 

Это лишь небольшой пример, массив я на самом деле делает очень большой. Конечно, мне не нужно жестко кодировать это и делать каждую строчку один за другим. Как я могу сделать это более эффективно?

EDIT:

Вопрос слегка сдвинут в то же время на эту тему.

Я хочу, чтобы превратить текстовый файл, как этот

A
B
C
D
E

в список массива, который выплюнуть программой в консоль, для использования в другой программе.

В основном textfile.txt -> Программа -> arraylist.txt

+2

Вы используете петлю. – Eran

+0

Просто используйте цикл 'for'. –

+0

Для динамического размера вам лучше использовать ArrayList. – Blobonat

ответ

0

Вы можете использовать цикл и анализировать индекс ПОЛ в строку:

final String[] foo = new String[10]; 
    for (int i = 0; i < foo.length; i++) { 
     foo[i] = Integer.toString(i); 
    } 
    System.out.println(Arrays.toString(foo)); 
0

используйте устройство for() цикл:

String[] adjectives = new String[6]; //first letter of a non-final variable should be lowercase in java 
for(int i = 0; i < adjectives.length; i++) { //loop index from 0 to the arrays length 
    adjectives[i] = Integer.toString(i) //you could also use an int[] 
} 

Done.

Также обратите внимание на это: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

0

Если вы пытаетесь просто присвоить номера по возрастанию, а затем использовать for цикл:

int[] adjectives = int[5]; 
//replace 5 with whatever you want 

for(int x = 0; x < adjectives.length; x++){ 
    adjectives[x] = x 
} 

Если вы хотите разместить струнные/объекты там, у которых нет какого-либо инкрементного порядка, вы можете сконденсировать оператор присваивания в одну строку:

String[] adjectives = {"hey", "there", "world", "hello"} 
0

Учитывая слова пришедшего из текстовой переменной, можно просто разбить его:

String text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit"; 
String[] words = text.split("[ \n]"); 
System.out.println(Arrays.toString(words)); 
0

Вы можете использовать ArrayList, а затем, если вы действительно хотите, массивы только затем преобразовать ArrayList в массив datatype--

List<String> ls=new ArrayList<String>(); 

     for(int i=0;i<=Integer.MAX_VALUE-1;i++) 
      ls.add(Integer.toString(i)); 

String array[]=ls.toArray(new String[ls.size()]); 
+1

Это излишне неэффективный способ создания массива. Используйте список или используйте массив; не используйте оба. –

0

прочитать текстовый файл построчно и хранить каждую линию чтения в ArrayList с BufferedReader `

import java.io.*; 
import java.util.ArrayList; 


class TxtFileToArrayList 
{ 

public static void main(String args[]) 
    { 
    ArrayList lines = new ArrayList(); 

    try{ 
    // Open the file  
    FileInputStream fstream = new FileInputStream("text.txt"/*file path*/); 

    DataInputStream in = new DataInputStream(fstream); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String readLine; 
    //Read File Line By Line 
    while ((readLine = br.readLine()) != null) { 
      lines.add(readLine);// put the line in the arrayList 
    } 
    //Close the input stream 
    in.close(); 
    }catch (Exception e){//Catch exception if any 

    } 
    } 
} 

` или использовать readAllLines()

Смежные вопросы