Java-Collection类(二)

Java-Collection类(二)

    • 一、List集合
    • 二、ArrayList集合
    • 三、LinkedList集合
    • 四、Vector集合

一、List集合

List接口:
java.util.List接口 extends java.util.Collection接口 ,因此Collection中的方法和特性它都具有

List接口特点:
1.有序存储元素,即存储元素与取出元素的顺序一致
2.容许存储重复的元素
3.有索引

List接口中常用的特有方法:
public void add(int index,E element) 将指定元素添加到指定索引位置
public E get(int index) 获取指定索引位置的元素
public E remove(int index) 删除指定位置的元素,返回值为删除的元素
public E set(int index,E element) 用指定的元素替换集合中指定位置的元素

注意:
1.List是一个接口,无法直接创建对象使用,需要使用多态
2.集合索引从0开始
3.进行索引操作时,需要注意索引越界,会报错

public class ListDemo01 {
     
	public static void main(String[] args) {
     
		// 创建一个List集合对象,无法直接创建对象使用,需要使用多态
		// List list = new List<>();错误写法
		List<Integer> list = new ArrayList<>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		// System.out.println(list);//输出结果:[1, 2, 3, 4]

		// public void add(int index,E element) 将指定元素添加到指定索引位置
		list.add(0, 8);// 将8添加到集合第一个位置,索引从0开始
		list.add(2, 3);// 将3添加到集合第三个位置,范围是增加了上一条语句元素的集合,而不是最初的集合
		// System.out.println(list);//输出结果:[8, 1, 3, 2, 3, 4] 容许存储重复元素

		/*
		 * public E get(int index) 获取指定索引位置的元素 可以通过此方法进行集合的遍历 至此,遍历List集合有三种方式:
		 * 1.迭代器 2.增强for循环 3.list特有get()方法
		 */
		// 获取单个元素
		int a = list.get(0);
		System.out.println(a);// 输出结果:8

		// 1.list特有get()方法,对List集合进行遍历
		for (int i = 0; i < list.size(); i++) {
     
			int b = list.get(i);
			System.out.print(b + " ");
		} // 输出结果:8 1 3 2 3 4

		// 2.使用迭代器进行遍历
		Iterator<Integer> it1 = list.iterator();
		while (it1.hasNext()) {
     
			int c = it1.next();
			System.out.print(c + " ");
		}  输出结果:8 1 3 2 3 4

		// 3.增强for循环
		for (int i : list) {
     
			System.out.print(i + " ");// 输出结果:8 1 3 2 3 4
		}

		// public E remove(int index) 删除指定位置的元素,返回值为删除的元素
		System.out.print(list);// 输出结果:[8, 1, 3, 2, 3, 4]
		int d = list.remove(3);// 移除第四个位置的元素,并返回此元素
		System.out.println(list);// 输出结果:[8, 1, 3, 3, 4]

		// public E set(int index,E element) 用指定的元素替换集合中指定位置的元素
		int e = list.set(0, 9);// 将第一个位置的元素换成9,并返回被替换的元素
		System.out.println(e);// 输入结果:8

		// 注意异常
		list.clear();// 清空集合
		int f = list.get(0);// 抛出异常:IndexOutOfBoundsException

	}

}

二、ArrayList集合

ArrayList集合:
java.util.ArrayList implements java.util.List List里的方法都可使用
底层是一个数组,查询数据快,增删数据慢
ArrayList集合常用方法:
public void add(int index,E element) 将指定元素添加到指定索引位置
public E get(int index):从集合中获取指定索引位置的元素,返回值为获取的元素
public E remove(int index) 删除指定位置的元素,返回值为删除的元素
public E set(int index,E element) 用指定的元素替换集合中指定位置的元素
public int size() 获取集合元素长度

public class ListDemo02 {
     
	public static void main(String[] args) {
     
		ArrayList<Integer> alist = new ArrayList<>();
		alist.add(1);
		alist.add(2);
		alist.add(3);
		System.out.println(alist);//输出结果:[1, 2, 3]
		
		//  public void add(int index,E element)  将指定元素添加到指定索引位置
		alist.add(1, 6);
		System.out.println(alist);//输出结果:[1, 6, 2, 3]
		
        //public E get(int index):从集合中获取指定索引位置的元素,返回值为获取的元素
		int a = alist.get(3);//获取第四个位置的元素
		System.out.println(a);//输出结果:3
		
		// public E remove(int index)  删除指定位置的元素,返回值为删除的元素
		int b = alist.remove(2);//删除第三个位置的元素
		System.out.println(b);//输出结果:2
		System.out.println(alist);//输出结果:[1, 6, 3]
		// public E set(int index,E element) 用指定的元素替换集合中指定位置的元素
		int c = alist.set(0, 8);//将第一个位置替换成8,返回被替换的元素
		System.out.println(c);//输出结果:1
		System.out.println(alist);//输出结果:[8, 6, 3]
		
		//public int size()  获取集合元素长度
		int size = alist.size();
		System.out.println(size);//输出结果:3
	}

}

三、LinkedList集合

LinkedList集合:
java.util.LinkedList implements java.util.List
List里的方法都可使用,底层是一个链表。增删快,查询慢
LinkedList特有方法:
public void addFirst(E e) 在集合的开头插入指定元素
public void push()将元素推送到由此列表表示的堆栈上,等价于addFirst()
public void addLast(E e) 在集合的末尾插入指定元素
public E removeFirst() 删除集合中的第一个元素,返回被删除的元素
public E pop() 从此列表表示的堆栈中弹出一个元素,等价于removeFirst()
public E removeLast() 删除集合中的最后一个元素,返回被删除的元素
public E getFirst() 返回集合中的第一个元素
public E getLast() 返回集合中的最后一个元素

public class ListDemo03 {
     
	public static void main(String[] args) {
     
		LinkedList<Integer> llist = new LinkedList<>();
		llist.add(1);
		llist.add(2);
		llist.add(3);
		llist.add(3);
		System.out.println(llist);//输出结果:[1, 2, 3, 3]
		
		//public void addFirst(E e)  在集合的开头插入指定元素
//		llist.addFirst(8);
		// public void push()将元素推送到由此列表表示的堆栈上,等价于addFirst()
		llist.push(8);
		System.out.println(llist);//输出结果:[8, 1, 2, 3, 3]
		
		
		// public void addLast(E e)   在集合的末尾插入指定元素
		llist.addLast(6);
		System.out.println(llist);//输出结果:[8, 1, 2, 3, 3, 6]
		
		// public E removeFirst()  返回集合中的第一个元素
//		int a = llist.removeFirst();
		// public E pop()   从此列表表示的堆栈中弹出一个元素,等价于removeFirst()
		int a = llist.pop();
		System.out.println(a);//输出结果:8
		System.out.println(llist);//输出结果:[1, 2, 3, 3, 6]
		
		// public E removeLast()   删除集合中的最后一个元素,返回被删除的元素
		int b = llist.removeLast();
		System.out.println(b);//输出结果:6
		System.out.println(llist);//输出结果:[1, 2, 3, 3]
		
		
		// public E  getFirst()  返回集合中的第一个元素
		int c = llist.getFirst();
		System.out.println(c);//输出结果:1
		
		//public E  getLast()   返回集合中的最后一个元素
		int d = llist.getLast();
		System.out.println(d);//输出结果:3
	}

}

四、Vector集合

Vector集合:自JDK1.0就有,是所有单列集合的初始,从JDK1.2版本之后才出现Collection的所有集合,JDK1.2以后Vector 实现了List接口, 因为性质与ArrayList集合差不多,被ArrayList集合取代,但是继承List接口,所有方法仍可使用
Vector集合特殊方法:
public void addElement(E e) 将指定的组件添加到此向量的末尾,将其大小增加1(JDK1.0时)
public Enumeration elements() 返回此向量的组件的枚举。(JDK1.0时的迭代器)
public boolean hasMoreElements() 测试此枚举是否包含更多元素。
public E nextElement() 如果此枚举对象至少有一个要提供的元素,则返回此枚举的下一个元素。

public class ListDemo04 {
     
	public static void main(String[] args) {
     
		Vector<Integer> v1 = new Vector<>();
		v1.addElement(1);
		v1.addElement(2);
		v1.addElement(3);
		System.out.println(v1);//输出结果:[1, 2, 3]
		
		//遍历
		Enumeration<Integer> e = v1.elements();
		while(e.hasMoreElements()){
     
			int a = e.nextElement();
			System.out.print(a+" ");//输出结果:1 2 3 
		}
	}

}

你可能感兴趣的:(Java,java,集合,类)