话不多说,上代码:
@Test
public void testListSeq(){
List<String> list = new ArrayList<String>();
// List<String> list = new LinkedList<String>();
List<String> list1 = new LinkedList<String>();
int a = 10000;
int b = 1000;
int c = 10;
// int res = a*c;
// int res = c*b;
int res = a*b;
int e = 0 ;
while (e<res){
e++;
list.add(e+"");
list1.add(e+"");
}
//普通遍历list 需要每次计算list长度 遍历次数较多时,效率最低;list为linkedList ,遍历次数较多时,效率极低
for(int i = 0 ;i < list.size();i++){
System.out.println(list.get(i));
}
//提取list长度,list为arrayList 遍历次数较多时,效率最高;list为linkedList ,遍历次数较多时,效率极低
int n = list.size();
for(int i = 0 ;i < n;i++){
System.out.println(list.get(i));
}
//for each 遍历 jdk版本5及以上 遍历次数较多时,效率较低,只比不提取长度的普通遍历高。 遍历次数较少(十万以内)时,效率较高。
//;list为linkedList ,遍历次数较多时,效率极高。
for(Object s : list){
System.out.println(s+"");
}
//使用迭代器iterator 遍历次数较多时,效率较高 仅次于提取list长度的普通遍历;list为linkedList ,遍历次数较多时,效率极高和foreach基本相同
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//综上所述,在使用循环时优先考虑iterator和for each 方式。
list.clear();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list1.clear();
list1.add("1");
list1.add("2");
list1.add("10");
list1.add("4");
list1.add("5");
list1.add("6");
System.out.println(list.get(2)+"--------------");
System.out.println(list1.get(2)+"--------------");
//删除list中的前五个元素
for(int i = 0 ;i < 5;i++){
list.remove(0);
list1.remove(0);
}
//打印最开始的元素,从这可以看出,arrayList是一个队列结构。先进先出。他存在放入顺序。
//linkedList 在表现上也可以看做是个队列,实际是个链表结构构成的链状结构。如果你需要的只是个队列,建议用ArrayList
System.out.println(list.get(0)+"--------------");
System.out.println(list1.get(0)+"--------------");
}