این چیز ها رو بعد از خوندن مقاله،فکر کردم بیان کنم.
بعضی هاش سواله...
امیدوارم جواب بدین دوستم
_________________________
دیدم توی تعریف متغیر ها،این رو داریم:
Liner=new String[100];
خب،یعنی تعداد خطوط نمیتونن بیشتر از 99 تا خط بشه؟!
راستی،بیایم داینامیکی سایز آرایه رو بدیم.
تا اونجا که من دیدم،ما توی هر Scope Code این رو داریم:
Liner[LineCount]=Buf1.toString();
و چون میخواستیم مقدار liner رو توی تابع PrintLine استفاده کنیم،اومدیم، از اول آرایۀ Liner رو پابلیک تعریف کردیم.من میگم بیایم توی هر Scope اینطوری آرایۀ Liner رو استفاده کنیم:
String[] Liner= new String[LineCount];
بعد 2 تا راه داریم...
بیایم از وکتور استفاده کنیم،که سرعتش از ArrayList که توی J2SE داریم،به دلیل متدهای synchronized پایین تره.
این یه سمپل:
Vector strings=new Vector();
strings.addElement("HELLO");
//then convert it to string array
String str[]=new String[strings.size()];
str[0]=(String)strings.get(0);
یعنی بیایم وکتور رو پابلیک تعریف کنیم.
بعد توی For از تابع printLine بیام اینو بنویسیم:
printstr((String)strings.get(i),
بجای این که الآن است:
printstr(Liner[i],
یا بیایم از این کلاس استفاده کنیم که واسه آرایۀ داینامیک استرینگی است:
public class DynamicStringArray {
private static final int CAPACITY_INCREMENT = 10;
private static final int INITIAL_CAPACITY = 10;
private final int capacityIncrement;
public int length = 0;
public String[] array;
public DynamicStringArray(int initialCapacity, int capacityIncrement) {
this.capacityIncrement = capacityIncrement;
this.array = new String[initialCapacity];
}
public DynamicStringArray() {
this(CAPACITY_INCREMENT, INITIAL_CAPACITY);
}
public int append(String str) {
final int offset = length;
if (offset == array.length) {
String[] old = array;
array = new String[offset + capacityIncrement];
System.arraycopy(old, 0, array, 0, offset);
}
array[length++] = str;
return offset;
}
public void removeElementAt(int offset) {
if (offset >= length) {
throw new ArrayIndexOutOfBoundsException("offset too big");
}
if (offset < length) {
System.arraycopy(array, offset + 1, array, offset, length - offset
- 1);
length--;
}
}
}
فقط شما بیا یه کاری کن ، اگه دوس داشتی این کلاس رو تست کن،ببین جوای میده این راه
__________________________________________________ __________________________________
موارد بعدی رو توی پست های جدا میدم،این خیلی بزرگ شد