import java.util.ArrayList;
import java.util.List;
public class ArrayListEx2 {
public static void main(String[] args) {
// 긴 문자열 데이터를 원하는 길이로 잘라서 ArrayList에 담은 다음 출력하기
final int LIMIT = 10; //자르고자 하는 글자의 개수
String source = "0123456789abcdefghijABCDEFGHIJ!@#$%^&*()ZZZ";
int sourceLength = source.length(); //길이 43
// 크기를 약간 여유있게 잡기... 근데 왜 이렇게 잡지?
List list = new ArrayList(sourceLength/LIMIT + 10);
for(int i=0; i<sourceLength; i += LIMIT) { //**증감식 주의!!
if(i+LIMIT < sourceLength)
list.add(source.substring(i, i+LIMIT));
else
list.add(source.substring(i)); //i == 40일 때 여기로
}
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
}
}
->
0123456789
abcdefghij
ABCDEFGHIJ
!@#$%^&*()
ZZZ
import java.util.Vector;
public class VectorEx1 {
public static void main(String[] args) {
Vector v = new Vector(5); //**용량capacity == 5
v.add("1");
v.add("2");
v.add(3);
// v.add("5");
print(v);
v.trimToSize(); //빈공간 없애기
System.out.println("=== After trimToSize() ===");
print(v); // size() == capacity()
v.ensureCapacity(6);
System.out.println("=== After ensureCapacity(6) ===");
print(v);
v.setSize(7); //capacity가 작을 경우, 자동적으로 기존capacity*2
System.out.println("=== After setSize(7) ===");
print(v);
v.clear(); //모든 요소 삭제 -> size만 0, capaticy는 그대로!
System.out.println("=== After clear() ===");
print(v);
}
public static void print(Vector vector) {
System.out.println(vector);
System.out.println("size() :: "+vector.size());
System.out.println("capacity() :: "+vector.capacity());
System.out.println();
}
}
->
[1, 2, 3]
size() :: 3
capacity() :: 5
=== After trimToSize() ===
[1, 2, 3]
size() :: 3
capacity() :: 3
=== After ensureCapacity(6) ===
[1, 2, 3]
size() :: 3
capacity() :: 6
=== After setSize(7) ===
[1, 2, 3, null, null, null, null]
size() :: 7
capacity() :: 12
=== After clear() ===
[]
size() :: 0
capacity() :: 12