🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
- 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻
方 法 名 称 | 功 能 简 介 |
---|---|
void add(int index, E obj) | 用来向列表的指定索引位置添加对象,其他对象的索引位置相对后移一位。索引位置从0开始 |
E remove(int index) | 用来清除列表中指定索引位置的对象 |
E set(int index, E obj) | 用来将列表中指定索引位置的对象修改为指定的对象 |
E get(int index) | 用来获得指定索引位置的对象 |
int indexOf(Object obj) | 用来获得指定对象的第一个索引位置。当不存在时,返回-1 |
int lastIndexOf(Object obj) | 用来获得指定对象的最后一个索引位置。当不存在时,返回-1 |
List > subList(int from, int to) | 返回从from(包含)到to(不包含)的一个List列表 |
listIterator() | 用来获得一个包含所有对象的ListIterator型实例 |
// 利用ArrayList类实例化List List list1 = new ArrayList(); // 利用LinkedList类实例化List List list2 = new LinkedList();
public ArrayList():创建初始容量为10的空数组列表 public ArrayList(int i):创建初始容量为i的空数组列表 public ArrayList(Collection c):创建包含容器c中所有元素的数组列表
例:TestArrayList.java
import java.util.ArrayList; public class TestArrayList { public static void main(String[] args) { ArrayList cityList = new ArrayList<>(); //add some cities in the list cityList.add("Beijing"); //cityList now contains[Beijing] cityList.add("London"); //cityList now contains[Beijing,London] cityList.add("Shanghai"); //cityList now contains[Beijing,London,Shanghai] cityList.add(" Beijing"); //cityList now contains[Beijing,London,Shanghai, Beijing] cityList.add("Taiyuan"); //cityList now contains[Beijing,London,Shanghai, Beijing,Taiyuan] System.out.println("List size="+cityList.size()); System.out.println("Is Taiyuan in the list?"+cityList.contains("Taiyuan")); System.out.println("The location of Shanghai in the list?"+cityList.indexOf("Shanghai")); System.out.println("Is the list empty?"+cityList.isEmpty()); cityList.add(2, "Xian"); // [Beijing,London,Xian,Shanghai, Beijing,Taiyuan] cityList.remove(“Shanghai"); // [Beijing,London,Xian,Beijing,Taiyuan] cityList.remove(1); // [Beijing,Xian,Beijing,Taiyuan] System.out.println(cityList.toString()); for(int i=cityList.size()-1;i>=0;i--) System.out.print(cityList.get(i)+" "); } }
for(int i=0; i
b.增强的for循环
for(String elm:array) System.out.println(elm)
c.Iterator迭代器对象
d.ListIterator迭代器对象
c.Iterator迭代器对象
Iterator iterator = array.iterator(); //得到迭代器对象 while(iterator.hasNext()) System.out.println(iterator.next());
for(Iterator iterator = array.iterator(); iterator.hasNext();) System.out.println(iterator.next());
d.ListIterator迭代器对象
boolean hasNext() :返回是否还有下一个元素 boolean hasPrevious() :返回是否还有前一个元素 E next():返回下一个元素 E previous():返回前一个元素 int nextIndex():返回下一个元素的索引 int previousIndex():返回前一个元素的索引 void add(E o):当前位置插入一个元素 void remove():删除当前元素 void set(E o):修改当前元素
例:使用ListIterator对象实现反向输出线性表中的元素。
import java.util.*; public class IteratorDemo{ public static void main(String[] args) { List myList = new ArrayList(); myList.add("one"); myList.add("two"); myList.add("three"); myList.add("four"); ListIterator iterator = myList.listIterator(); // 将迭代器指针移动到线性表末尾 while(iterator.hasNext()){ iterator.next(); } // 从后向前访问线性表的每个元素 while (iterator.hasPrevious()) System.out.println(iterator.previous()); } }
public static List asList(T… a)参数可以为数组,可以是数组元素 String[] str = {"one", "two", "three"}; List list = Arrays.asList(str); List list = Arrays.asList("one", "two", "three");
List list1 = new ArrayList<>(list);
编写程序,实现一个对象栈类MyStack,要求使用ArrayList类实现该栈,该栈类的UML图如下所示。
import java.util.ArrayList; import java.util.List; public class MyStack { private List list; // 构造函数 public MyStack() { list = new ArrayList<>(); } // 判断栈是否为空 public boolean isEmpty() { return list.isEmpty(); } // 返回栈的大小 public int getSize() { return list.size(); } // 返回栈顶元素但不移除 public T peek() { if (isEmpty()) { throw new IllegalStateException("Stack is empty"); } return list.get(list.size() - 1); } // 弹出栈顶元素 public T pop() { if (isEmpty()) { throw new IllegalStateException("Stack is empty"); } return list.remove(list.size() - 1); } // 元素入栈 public void push(T t) { list.add(t); } // 元素查找方法,返回元素在栈中的位置(从栈底开始计数,即第一个元素位置为0),如果未找到则返回-1 public int search(T t) { for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(t)) { return i; // 注意这里返回的是从栈底开始的位置 } } return -1; // 未找到 } // 可选:打印栈内容(用于调试) public void printStack() { System.out.println("Stack content (bottom to top):"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } // 主函数,用于测试MyStack类 public static void main(String[] args) { MyStack stack = new MyStack<>(); stack.push(1); stack.push(2); stack.push(3); System.out.println("Stack size: " + stack.getSize()); System.out.println("Top element: " + stack.peek()); System.out.println("Popped element: " + stack.pop()); System.out.println("Element 2 position: " + stack.search(2)); stack.printStack(); } }
博主用心写,读者点关注,互动传真情,知识不迷路。