List子体系

一、 List:


 *         有序的(存储和读取的顺序是一至的)
 *         有整数索引
 *         允许重复的
 * List的特有功能:
 *          void add(int index, E element) 
              在列表的指定位置插入指定元素(可选操作)。 
 *          E get(int index) 
              返回列表中指定位置的元素。 
 *          E remove(int index) 
              移除列表中指定位置的元素(可选操作)。 
 *          E set(int index, E element) 
              用指定元素替换列表中指定位置的元素(可选操作)。 

package com.myList.day01;

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

/*
 * List:
 * 		有序的(存储和读取的顺序是一至的)
 * 		有整数索引
 * 		允许重复的
 * List的特有功能:
 * 		 void add(int index, E element) 
          	在列表的指定位置插入指定元素(可选操作)。 
 * 		 E get(int index) 
          	返回列表中指定位置的元素。 
 * 		 E remove(int index) 
          	移除列表中指定位置的元素(可选操作)。 
 * 		 E set(int index, E element) 
          	用指定元素替换列表中指定位置的元素(可选操作)。 
 */
public class ListDemo01 {

	public static void main(String[] args) {
		//创建的列表的对象
		List list = new ArrayList();
		/*void add(int index, E element) 
          	在列表的指定位置插入指定元素(可选操作)。  */
		list.add(0, "hello");
		list.add(0, "word");
		list.add(1, "java");//[word, java, hello]
		//System.out.println(list);//OUT:[word, hello]
		/*E get(int index) 
      	返回列表中指定位置的元素。 
		System.out.println(list.get(0));
		System.out.println(list.get(1));
		System.out.println(list.get(2));*/
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
		/*E remove(int index) 
      	移除列表中指定位置的元素(可选操作)。*/
		//System.out.println(list.remove(0));
		 /*E set(int index, E element) 
       	用指定元素替换列表中指定位置的元素(可选操作)。 */
		System.out.println(list.set(0, "android"));
		System.out.println(list);	
	}

}

二、LinkedList特有功能

* list的子类:
 *         ArrayList:
 *             底层是数组结构,查询快,增删慢
 *        LinkedList:
 *            底层结构是链表,查询慢,增删快
 *
 *如何选择使用不同的集合?
 *            如果查询多,增删少-----》使用ArrayList
 *            如果查询少,增删多-----》使用LinkedList
 *            如果不知道使用什么----则使用ArrayList
 *            除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 
 *            和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
 *LinkedList<E>的功能:
 *        List 接口的链接列表实现。
 *        void addFirst(E e) :向链表的头部添加元素
 *        void addLast(E e):向链表的尾部添加元素
 *        E getFirst():获取链头的元素,不删除元素
 *        E getLast():获取链尾的元素,不删除元素
 *        E removeFirst():返回链头的元素并删除链头的元素
 *        E removeLast():返回链尾的元素并删除链尾的元素

package com.myList.day01;

import java.util.LinkedList;

/*
 * list的子类:
 * 		ArrayList:
 * 			底层是数组结构,查询快,增删慢
 *		LinkedList:
 *			底层结构是链表,查询慢,增删快
 *
 *如何选择使用不同的集合?
 *			如果查询多,增删少-----》使用ArrayList
 *			如果查询少,增删多-----》使用LinkedList
 *			如果不知道使用什么----则使用ArrayList
 *			除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 
 *			和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
 *LinkedList<E>的功能:
 *		List 接口的链接列表实现。
 *		void addFirst(E e) :向链表的头部添加元素
 *		void addLast(E e):向链表的尾部添加元素
 *		E getFirst():获取链头的元素,不删除元素
 *		E getLast():获取链尾的元素,不删除元素
 *		E removeFirst():返回链头的元素并删除链头的元素
 *		E removeLast():返回链尾的元素并删除链尾的元素
 */
public class ListDemo02 {

	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		list.add("hello");
		list.add("word");
		list.addFirst("java");
		list.addLast("android");//OUT:[java, hello, word, android]
		System.out.println(list);//OUT:[java, hello, word]
		System.out.println(list.getFirst());//OUT:java
		System.out.println(list.getLast());//OUT:android
		System.out.println(list.removeLast());//OUT:android
		System.out.println(list.removeFirst());//OUT:java
		System.out.println(list);//OUT:[hello, word]
	}

}
package com.myList.day01;
import java.util.ArrayList;
/*
 * 需求:定义一个方法,返回指定列表中指定元素的索引位置
 * 判断元素是否存在
 */
import java.util.List;

public class ListdexerciseDemo03 {

	public static void main(String[] args) {
		List list = new ArrayList<>();
		list.add("hello");
		list.add("word");
		list.add("java");
		int index = index(list, "java");
		System.out.println(index);//OUT:2
		int index2 = index(list, "123");
		System.out.println(index2);//OUT:-1
		contains(list, "java");
		boolean bl = list.contains("kkkk");//现成的判断方法
		System.out.println(bl);
	}
	/*	List list:指定列表
	 * 	Object object:指定元素
	 */
	public static int index(List list,Object object) {
		for (int i = 0; i < list.size(); i++) {
			//获取列表中的元素
			Object obj = list.get(i);
			//使用列表中的元素和指定的元素进行比较
			if (obj.equals(object)) {
				return i;
			}
		}
		//查找失败
		return -1;
		
	}
	public static boolean contains(List list,Object object) {
		int index = index(list, object);
		if (index>=0) {
			System.out.println("元素存在");
			return true;
		}else {
			System.out.println("元素不存在");
			return false;
		}
	}
}

其实吧,看源码更加的清楚!!!!!

猜你喜欢

转载自blog.csdn.net/weixin_42698882/article/details/82749461