02 深入了解java集合之List

List 

此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素

一 功能:增加、删除、获取、修改、迭代器

package it.Collection;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/*List集合不可重复
 * 特有功能:
 * 增加:  void add(int index,E element)
 * 删除 :  E remove(int index)
 * 获取:  E get(int index) 
 * 修改:  E set(int index,E element) 
 * 迭代器: ListIterator listIterator()
 */
public class ListDamo1 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		//添加
		list.add(0, "诸葛亮");
		list.add(1, "司马懿");
		list.add(2, "周瑜");
		list.add(3, "曹操");
		list.add(4, "刘备");
		list.add(5, "孙权");
		list.add(4, "刘备1"); //在索引前添加元素
//		System.out.println(list);
		//删除 
//		System.out.println(list.remove(4));//返回那个被删除的元素
		//获取
		System.out.println(list.get(5));//获取指定索引的元素
		//修改
		System.out.println(list.set(0,"猪")); //返回set前对应索引的数据
		System.out.println(list);
		//迭代器
		ListIterator<String> i = list.listIterator();
		//正迭代
		while(i.hasNext()){
			String s= i.next();
			System.out.println(s);
		}
		System.out.println("-------------------------");
		//反迭代
		while(i.hasPrevious()){
		String s =	i.previous();
		System.out.println(s);
		}
	}
}

二 练习题:判断集合里面是否有"曹操"这个元素,如果有则添加"孙悟空", 请写如下代码:

package it.Collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*例题 :判断集合里面是否有"曹操"这个元素,如果有则添加"孙悟空", 请写如下代码:
 *      迭代器: ListIterator listIterator()//添加功能
 */

public class ListDamoTest02 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		// 添加
		list.add(0, "诸葛亮");
		list.add(1, "司马懿");
		list.add(2, "周瑜");
		list.add(3, "曹操");
		list.add(4, "刘备");
		list.add(5, "孙权");

		// 迭代器
		ListIterator<String> i = list.listIterator();
		/*
		 * 由于迭代器是依赖于集合存在的,当集合发生改变后,迭代器再迭代就会发生并发修改异常。 解决方案: A:迭代器循环,迭代器修改。
		 * 在要迭代的后面添加元素。
		 */
		while (i.hasNext()) {
			String s = i.next();
			if ("曹操".equals(s)) {
				i.add("孙悟空");
			}
			System.out.println(s);
		}
		System.out.println(list);
		System.out.println("-------------------------");
		// B:集合循环,集合修改。元素添加在最后面
		for (int a = 0; a < list.size(); a++) {
			if ("曹操".equals(a)) {
				list.add("孙悟空");
			}
		}
		System.out.println(list);

	}
}

三  什么叫数据结构?

 就是数据的存储方式

四 常见的数据结构(栈、队列、数组、链表)

A  栈 :先进后出


B 队列:先进先出


C 数组 


D 链表


五 List的子类特点(面试题)
ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。


猜你喜欢

转载自blog.csdn.net/zhangxinxin1108/article/details/79295835