List and Set
List
特点:
1、有序,添加顺序和取出顺序一致(先进先出,队列特性)
2、元素可重复
3、支持索引(索引从0开始)
ArrayList
ArrayList可以理解 为顺序表,查询快增删慢
下面演示ArrayList中一些常用方法
static void ArrayListTest() {
List<String> col = new ArrayList<String>();
//实验list带索引的特殊方法
col.add("can");
col.add("lose weight");
col.add("lose weight");
//不加索引,则默认插入到末尾
col.add(0,"I");
//加上索引,则将元素插入到指定位置
Iterator<String> it = col.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
String s = col.get(2);
//获取指定索引位置的元素
System.out.println(s);
int a = col.indexOf("lose weight");
//返回指定元素第一次出现的索引 , 如果没有则返回-1
int b = col.lastIndexOf("lose weight");
//返回指定元素最后一次出现 的索引 ,如果没有则返回-1
int c = col.lastIndexOf("handsome");
//测试没有的情况
System.out.println(a);
System.out.println(b);
System.out.println(c);
ListIterator<String> itlist = col.listIterator(1);
//ListIterator意为,从指定索引位置开始迭代
while(itlist.hasNext()) {
String s1 = itlist.next();
System.out.println(s1);
}
col.set(3, ",yes?");
//set指把指定索引位置的元素替换
System.out.println();
for(String i : col) {
System.out.print(i+ " ");
}
}
输出如下:
I
can
lose weight
lose weight
lose weight
a = 2
b = 3
c = -1
can
lose weight
lose weight
I can lose weight ,yes?
Set和List一样,也是Collection接口的子接口,因此常用方法和Collection接口一样。其特点如下 :
1、是无序的,即存储和取出的顺序不同,但取出的顺序是固定的(也就是说,第一次运行和第二次运行取出的顺序一致,而不会出现第一次取出 是一个顺序,第二次取出又是一个顺序)
2、元素不可重复(使用equals方法进行判断)
Set接口的遍历也是使用迭代器或者增强for来进行
由于基本方法与Collection类似,此处不做演示,只展示无序性
static void setDemo1() {
/*
* 对无序性进行测试
*/
Set<String> st = new HashSet<String>();
st.add("I");
st.add("can");
st.add("lose weight");
st.add(",yes?");
Iterator<String> it = st.iterator();
while(it.hasNext())
System.out.println(it.next());
}
输出如下:
,yes?
can
lose weight
I