一、 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;
}
}
}
其实吧,看源码更加的清楚!!!!!