集合(三)————list集合的子类

来源:互联网 发布:淘宝怎么设置降价提醒 编辑:程序博客网 时间:2024/06/05 07:34
1. 去除ArrayList中重复字符串元素方式
* A:案例演示
        * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
        * 思路:创建新集合方式
/** *  A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式 */public static void main(String[] args) {ArrayList list = new ArrayList();list.add("a");list.add("a");list.add("b");list.add("b");list.add("b");list.add("c");list.add("c");list.add("c");list.add("c");System.out.println(list);ArrayList newList = getSingle(list);System.out.println(newList);}/* * 去除重复 * 1,返回ArrayList * 2,参数列表ArrayList */public static ArrayList getSingle(ArrayList list) {ArrayList newList = new ArrayList();//创建一个新集合Iterator it = list.iterator();//获取迭代器while(it.hasNext()) {//判断老集合中是否有元素String temp = (String)it.next();//将每一个元素临时记录住if(!newList.contains(temp)) {//如果新集合中不包含该元素newList.add(temp);//将该元素添加到新集合中}}return newList;//将新集合返回}
2. 去除ArrayList中重复自定义对象元素
* A:案例演示
        * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
* B:注意事项
        * 重写equals()方法的
public class Demo2_ArrayList {public static void main(String[] args) {ArrayList list = new ArrayList();//创建集合对象list.add(new Person("张三", 23));list.add(new Person("张三", 23));list.add(new Person("李四", 24));list.add(new Person("李四", 24));list.add(new Person("李四", 24));list.add(new Person("李四", 24));//ArrayList newList = getSingle(list);//调用方法去除重复//System.out.println(newList);list.remove(new Person("张三", 23));System.out.println(list);}/* * 创建新集合将重复元素去掉 * 1,明确返回值类型,返回ArrayList * 2,明确参数列表ArrayList *  * 分析: * 1,创建新集合 * 2,根据传入的集合(老集合)获取迭代器 * 3,遍历老集合 * 4,通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加 */public static ArrayList getSingle(ArrayList list) {ArrayList newList = new ArrayList<>();//1,创建新集合Iterator it = list.iterator();//2,根据传入的集合(老集合)获取迭代器while(it.hasNext()) {//3,遍历老集合Object obj = it.next();//记录住每一个元素if(!newList.contains(obj)) {//如果新集合中不包含老集合中的元素newList.add(obj);//将该元素添加}}return newList;}}
3. LinkedList的特有功能
public class Demo3_LinkedList {/** *  public void addFirst(E e)及addLast(E e)* public E getFirst()及getLast()* public E removeFirst()及public E removeLast()* public E get(int index); */public static void main(String[] args) {LinkedList list = new LinkedList();list.addFirst("a");list.addFirst("b");list.addFirst("c");list.addFirst("d");list.addLast("e");//System.out.println(list.getFirst());//System.out.println(list.getLast());//System.out.println(list.removeFirst());//System.out.println(list.removeLast());System.out.println(list.get(1));System.out.println(list);}/*dcbae*/}
4. ArrayList存储字符串和自定义对象并遍历增强for版
* A:案例演示
         * ArrayList存储字符串并遍历增强for版
ArrayList<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");for(String s : list) {System.out.println(s);}
5. 三种迭代的能否删除
* 普通for循环,可以删除,但是索引要--
* 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
* 增强for循环不能删除