javaSE基础知识——day14 Collection集合的继承体系、ArrayList去除集合中的重复元素、LinkedList的特有功能、Vector的特有功能、排序集合中的元素

Collection集合的继承体系

在这里插入图片描述

ArrayList去除集合中的重复元素

案例:

import java.util.*;

public class CollectionTest {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(100);
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(100);
        list.add(500);
        list.add(200);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(100);
        list.add(500);
        list.add(200);
        list.add(100);
        list.add(1);
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(1);
        list.add(1);
        list.add(1);
        list.add(1);
        list.add(123);
        list.add(100);
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(100);
        list.add(500);
        list.add(200);
        list.add(100);
        /*for (int i = 0; i < list.size() - 1; i++) {
             for (int j = i + 1;j < list.size();j++){
                 Integer a = (Integer)list.get(j);
                 Integer b = (Integer)list.get(i);
                if (a.equals(b)){
                    list.remove(a);
                    j--;
                }
                System.out.println(list);
            }

        }*/
        for (int j = list.size() - 1;j >= 0;j--){
            for (int i = j - 1;i >= 0;i--){
                if (list.get(j).equals(list.get(i)) && i != j){
                    list.remove(i);
                    j = list.size() - 1;
                    i++;
                }
            }
           // System.out.println(list);
        }

         System.out.println(list);
    }
}


案例二:

package javaSEreview20190716;

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

/**
 * @Description:去除集合中的重复元素,用选择排序做出来
 * @Author:@李小白
 * @Date:2019/7/16 23:26
 */
public class Demo01 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(500);
        for (int i = 0; i < list.size(); i++) {
            for (int j =i+1; j < list.size(); j++) {
                if (list.get(i).equals(list.get(j))){
                      list.remove(j);
                    j--;
                }

            }
        }
        System.out.println(list);
    }
}

案例三:

import java.util.ArrayList;

public class MyTest3 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(100);
        list.add(100);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);
        list.add(100);
        list.add(500);
        list.add(200);
        list.add(100);
        list.add(400);
        list.add(500);
        list.add(100);
        list.add(300);

        //递归删除
        ArrayList list2 = deleteEle(list);
        System.out.println(list);
        System.out.println(list2);
        System.out.println(list == list2);
    }

    private static ArrayList deleteEle(ArrayList<Integer> list) {
        for (int i = 0; i < list.size(); i++) {
            Integer ele = list.get(i);
            if (list.indexOf(ele) != list.lastIndexOf(ele)) {
                list.remove(ele);
                return deleteEle(list);
            }
        }
        return list;
    }
}


LinkedList的特有功能

A:LinkedList类概述: List 接口的链接列表实现 , 此实现不是同步的
B:LinkedList类特有功能
public void addFirst(E e)及addLast(E e)
public E getFirst()及getLast()
public E removeFirst()及public E removeLast()

案例一:

import java.util.LinkedList;
public class MyTest {
    public static void main(String[] args) {
       // LinkedList 底层数据结构是链表,查询慢,增删快,线程不安装效率高
        LinkedList linkedList = new LinkedList();

        linkedList.add(100);
       // linkedList.addLast(1000);
        linkedList.add(200);
        linkedList.push(90000);
        linkedList.addFirst(10);



        System.out.println(linkedList);

        //Object peek = linkedList.peek();
        //System.out.println(peek);

        //Object poll = linkedList.poll();
        //System.out.println(poll);
        //System.out.println(linkedList);


        //void addFirst (E e)
        //将指定元素插入此列表的开头。
        //void addLast (E e)
        //将指定元素添加到此列表的结尾。
        //
        //E getFirst ()
        //返回此列表的第一个元素。
        //E getLast ()
        //返回此列表的最后一个元素。
        //
        //int indexOf (Object o)
        //返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 - 1。
        //int lastIndexOf (Object o)
        //返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 - 1。
        //
        //
        //E peek ()
        //获取但不移除此列表的头(第一个元素)。
        //E peekFirst ()
        //获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。
        //E peekLast ()
        //获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。
        //
        //
        //E pop ()
        //从此列表所表示的堆栈处弹出一个元素。
        //void push (E e)
        //将元素推入此列表所表示的堆栈。
        //
        //E removeFirst ()
        //移除并返回此列表的第一个元素。
        //
        //E removeLast ()
        //移除并返回此列表的最后一个元素。


    }
}


用LinkedList模拟栈数据结构的集合
栈的数据结构特点:先进后出
案例:

package day20190718.study01;

import java.util.LinkedList;

/**
 * @description: 模拟栈数据的集合,先进后出,用linkenList
 * @author: @李小白
 * @create: 2019-07-18 10:15
 */
public class Demo04 {
    public static void main(String[] args) {
        ListDemo4 ms = new ListDemo4();
        ms.addEle("100");
        ms.addEle("200");
        ms.addEle("300");;
        ms.addEle("400");
        ms.addEle("500");


        Object o = ms.get();
        System.out.println(o);
        Object o1 = ms.get();
        System.out.println(o1);
        Object o2 = ms.get();
        System.out.println(o2);
        Object o3 = ms.get();
        System.out.println(o3);
        Object o4 = ms.get();
        System.out.println(o4);




    }
}

package day20190718.study01;

import java.util.LinkedList;

/**
 * @description:
 * @author: @李小白
 * @create: 2019-07-18 10:49
 */
public class ListDemo4 {
    LinkedList linkedList=null;

    public ListDemo4() {//无参数构造
        linkedList = new LinkedList();
    }

    public void addEle(String s) {
        linkedList.addFirst(s);//一个一个相加方法到第一个
    }

    public Object get() {
        Object pop = linkedList.pop();//然后在吧第一个删除
        linkedList.addLast(pop);//把删除出来的放到最后一个,最后再输出较好了
        return pop;
    }
}


结果:
500
400
300
200
100
500

Vector的特有功能

A:Vector类概述: Vector 类可以实现可增长的对象数组 , Vector 是同步的。
B:Vector类特有功能
public void addElement(E obj)
public E elementAt(int index)
public Enumeration elements()

案例一:

import com.sun.media.sound.SoftTuning;
import javax.swing.*;
import java.util.Enumeration;
import java.util.Vector;

public class MyTest {
    public static void main(String[] args) {
        //E elementAt ( int index)
        //返回指定索引处的组件。
        //Enumeration<E> elements ()
        //返回此向量的组件的枚举。
        //void insertElementAt (E obj,int index)
        //将指定对象作为此向量中的组件插入到指定的 index 处。
        //
        //E lastElement ()
        //返回此向量的最后一个组件。
        //E firstElement ()
        //返回此向量的第一个组件(位于索引 0)处的项)。

        Vector vector = new Vector();
        //void addElement (E obj)
        //将指定的组件添加到此向量的末尾,将其大小增加 1。

        vector.addElement(2000);
        vector.addElement(100);
        vector.addElement(300);
        vector.add(100);
        vector.add(100);
        vector.add(100);
        vector.add(100);
        System.out.println(vector);
        vector 特有的迭代方式 elements()获取一个迭代器
        //Enumeration elements = vector.elements();
        //while (elements.hasMoreElements()){
        //    Object o = elements.nextElement();
        //    System.out.println(o);
        //}
        Object o = vector.elementAt(0);
        System.out.println(o);
        vector.insertElementAt(50, 1); //在指定索引处插入元素
        System.out.println(vector);

    }
}


ArrayList去除集合中字符串的重复值(字符串的内容相同)

案例:
//A:
//案例演示
//需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
//思路:创建新集合方式

import java.util.ArrayList;

public class MyTest {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("abc");
        list.add("bbb");
        list.add("abc");
        list.add("abc");
        list.add("ccc");
        list.add("ddd");
        list.add("ccc");
        list.add("ddd");
        ArrayList newList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            String s = (String) list.get(i);
            if(!newList.contains(s)){
                newList.add(s);
            }
        }

        System.out.println(newList);

    }
}

排序集合中的元素

ctrl+Q ctrl+P 可以提示方法中要的参数类型

案例:

import java.util.ArrayList;
import java.util.Comparator;

public class MyTest3 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(200);
        list.add(400);
        list.add(500);
        list.add(600);
        list.add(100);
        list.add(20);

        //排序集合中的元素
        //ctrl+Q ctrl+P 可以提示方法中要的参数类型
       list.sort(new Comparator<Integer>() {
           @Override
           public int compare(Integer a, Integer b) {

               return (a-b); //正 负 0
           }
       });

        System.out.println(list);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值