package com.itheima.d5_collection_list;
import java.util.ArrayList;
import java.util.List;
public class ListDemo01 {
public static void main(String[] args) {
//1.创建一个ArrayList集合对象
//List:有序、可重复的、有索引的
List<String> list = new ArrayList<>(); // 一行经典代码就诞生了!
list.add("Java");
list.add("Java");
list.add("Mysql");
list.add("Mysql");
//2.在某个索引位置插入元素
list.add(2,"HTML");
System.out.println(list);
//3.根据索引删除元素,返回被删除元素
System.out.println(list.remove(2));
System.out.println(list);
//4.根据索引获取元素:public E get(int index):返回集合中指定位置的元素。
System.out.println(list.get(2));
//5.修改索引位置处的元素:public E set(int index, E element)
//返回修改前的数据
System.out.println(list.set(1,"高斯林"));
System.out.println(list);
list.clear();
}
}
package com.itheima.d5_collection_list;
import java.util.LinkedList;
/**
* 如果查询多而增删少用ArrayList集合。(用的最多)
* 如果查询少儿增删首尾较多用LinkedList集合
*/
public class ListDemo03 {
public static void main(String[] args) {
//LinkedList可以完成队列结构,和栈结构 (双链表)
//栈
LinkedList<String> stack = new LinkedList<>();
stack.push("第一颗子弹");
stack.push("第二颗子弹");
stack.push("第三颗子弹");
stack.push("第四颗子弹");
System.out.println(stack);
//出栈 弹栈
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack);
//队列
LinkedList<String> queue = new LinkedList<>();
//入队
queue.addLast("1号");
queue.addLast("2号");
queue.addLast("3号");
queue.addLast("4号");
System.out.println(queue);
//出队
}
}
package com.itheima.d6_collection_update_delete;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
//1.准备数据
List<String> list = new ArrayList<>();
list.add("黑马");
list.add("Java");
list.add("Java");
list.add("赵敏");
list.add("赵敏");
list.add("素素");
System.out.println(list);
//[黑马, Java, Java, 赵敏, 赵敏, 素素]
// it
//需求:删除全部的Java信息
//a.迭代器遍历删除
// Iterator<String> it = list.iterator();
// while (it.hasNext()){
// String ele = it.next();
// if("Java".equals(ele)){
// //list.remove("Java");
// it.remove();//使用迭代器删除当前位置的元素,保证不后移,能够成功遍历到全部元素!
// }
// }
// System.out.println(list);
//b.foreach遍历删除
// for (String s : list) {
// if("Java".equals(s)){
// list.remove("Java");
// }
// }
// //c.lambda表达式(会出现bug)
// list.forEach( s -> {if("Java".equals(s)){
// list.remove("Java");}
// });
//d.for循环(不会出现异常 错误,但是数据删除出现了问题,会漏掉元素)
// for (int i = 0; i < list.size(); i++) {
// String ele = list.get(i);
// if("Java".equals(ele)){
// list.remove("Java");}
// }
// System.out.println(list);
//解决方案
//[黑马, Java, Java, 赵敏, 赵敏, 素素]
//
// for (int i = list.size() - 1; i >= 0; i--) {
// String ele = list.get(i);
// if ("Java".equals(ele)) {
// list.remove("Java");
// }
// }
// System.out.println(list);
//解决方案2
//[黑马, Java, Java, 赵敏, 赵敏, 素素]
for (int i = 0; i < list.size(); i++) {
String ele = list.get(i);
if ("Java".equals(ele)) {
list.remove("Java");
i--;
}
}
System.out.println(list);
}
}