Java学习之List、迭代器

Collection中的几个All方法

    addAll方法:把指定集合中的所有元素都添加到当前集合中。

    removeAll:把指定集合与当前集合的交集删除。

    retainAll:判断指定集合是否是当前集合的真子集,是 ,则返回true,不是则返回false。


集合的遍历
    迭代器遍历集合

// 获取集合中元素上迭代功能的迭代器对象
// 迭代器对象不需要new 直接通过iterator()方法获取即可
Iterator iterator = arrayList.iterator();
		
// 将集合中的元素遍历打印
while(iterator.hasNext()) {
	Object next = iterator.next();
	System.out.println(next);
}

迭代器原理

    集合内部有个指针,调用hasNext()方法时,会查看下一个位置是否为空,若不是空,则可调用next()方法将元素取出。

List特有方法

    add(int index,Object obj)

        在指定位置添加元素,但是要注意不要超出集合的Size。

    set(index,obj)

        设置元素,就是替换该位置的元素。

    get(int index)

        获取指定下标处的元素

    remove(int index)

        删除指定位置元素,返回的是删除的元素。

    listIterator() 返回一个ListIterator对象,在Iterator的基础上添加了方法,如可以在迭代循环中给集合添加元素。

    // 利用get方法遍历集合
    for (int i = 0; i < list.size(); i++) {
            // 打印元素
            System.out.println(list.get(i));
    }

方法的练习,对一个集合里的元素进行去重

// 获取一个ListIterator对象
ListIterator listIterator = list.listIterator();
			
// 迭代遍历
while (listIterator.hasNext()) {
	// 向下转型
	String string = (String)listIterator.next();
	// 判断新集合中是否有这个元素,没有就加到新集合中
	if (!list1.contains(string)) {
		list1.add(string);
	}
}
当集合中的元素是一个个单独的对象时,就无法使用如上方法了,因为这种方法的核心是调用的Object的equals方法,是对地址的比较,如果想达到去重的效果,需要在集合中存储的元素的类中重写equals方法,改成对类属性的判断。


你可能感兴趣的:(Java学习之List、迭代器)