文章目录

  • 1.测试ArrayList和LinkedList存储,查询效率
  • 2.使用LinkedList实现自定义栈和队列功能的类,提供添加,获取元素的方法.
  • 3.定义一个String类型的ArrayList集合,去除ArrayList中的重复元素。
  • 4.已知有十六支男子足球队参加2008 北京奥运会。 写一个程序,把这16 支球队随机分为4 个组,每组4只球队。采用List集合和随机数


1.测试ArrayList和LinkedList存储,查询效率

package com.boyi.itLianXi.collection;

import java.util.ArrayList;
import java.util.LinkedList;

public class CharuZengjia {
    public static void main(String[] args) {

        /*
        *测试插入耗时
        */
        ArrayList<Integer> arrayListInsert=new ArrayList<>();
        LinkedList<Integer> linkedListInsert=new LinkedList<>();

        for (int i = 0; i < 100000; i++) {
            arrayListInsert.add(i);
            linkedListInsert.add(i);
        }

        //ArrayList插入测试
        Long arrayStart=System.currentTimeMillis();
        for (int i = 0; i < 100000; i++) {
            arrayListInsert.add(1000,1);
        }
        Long arrayEnd=System.currentTimeMillis();
        System.out.println("ArrayList插入的时间"+(arrayEnd-arrayStart)+"毫秒");


        //LinkedList插入测试
        Long linkedStart=System.currentTimeMillis();
        for (int i = 0; i < 100000; i++) {
            linkedListInsert.add(1000,1);
        }
        Long linkedEnd=System.currentTimeMillis();
        System.out.println("ArrayList插入的时间"+(linkedEnd-linkedStart)+"毫秒");

        System.out.println("---------------------------");

        /*
        *测试查询耗时
        */
        ArrayList<Integer> arrayListFind=new ArrayList<>();
        LinkedList<Integer> linkedListFind=new LinkedList<>();
        for (int i = 0; i < 100000; i++) {
            arrayListFind.add(i);
            linkedListFind.add(i);
        }

        //测试ArrayList查询耗时
        Long arrayListFindStart = System.currentTimeMillis();
        for (int i = 0; i < 100000; i++) {
            arrayListFind.get(10000);
        }
        Long arrayListFindEnd = System.currentTimeMillis();
        System.out.println("ArrayList查询耗时为"+(arrayListFindEnd-arrayListFindStart )+"毫秒");
        //测试linkedList查询耗时
        long linkedListFindStart = System.currentTimeMillis();
        for(int i=0;i<100000; i++){
            linkedListFind.get(10000);
        }
        long linkedListFindEnd = System.currentTimeMillis();
        System.out.println("LinkedList查询耗时为"+(linkedListFindEnd-linkedListFindStart)+"毫秒");
    }
}

运行结果:

java 集合上机题 java集合例题_java 集合上机题

2.使用LinkedList实现自定义栈和队列功能的类,提供添加,获取元素的方法.

package com.boyi.itLianXi.collection;

import java.util.LinkedList;

/*
*Lifo:先进后出
* 堆
*/
public class useLinkedListAsLifo {
    public static void main(String[] args) {
        LinkedList stack=new LinkedList();

        stack.push("1");
        stack.push("2");
        stack.push("3");
        stack.push("4");
        stack.push("5");
        //打印栈元素
        System.out.println(stack);
        //删除栈顶元素%弹出zhandingyuansu
        System.out.println(stack.pop());
        //检测栈顶元素
        System.out.println(stack.peek());
        //打印栈元素
        System.out.println(stack);

    }
}

运行结果:

java 集合上机题 java集合例题_java_02

package com.boyi.itLianXi.collection;
/*
*先进先出
* 队
*/
import java.util.LinkedList;

public class useLinkedListAsfifo {
    public static void main(String[] args) {
        LinkedList queue=new LinkedList();

        queue.add(1);
        queue.add(2);
        queue.add(3);
        queue.add(4);
        queue.add(5);
        System.out.println(queue);
        System.out.println(queue.remove());
        System.out.println(queue.element());
        System.out.println(queue);

    }
}

运行结果:

java 集合上机题 java集合例题_i++_03

3.定义一个String类型的ArrayList集合,去除ArrayList中的重复元素。

package com.boyi.itLianXi.collection;

import java.util.ArrayList;
import java.util.Iterator;

public class arrayListRemove {
    public static void main(String[] args) {

        ArrayList<String>  a=new ArrayList<>();
        a.add("I");
        a.add("I");
        a.add("Like");
        a.add("I");
        a.add("Freedom");
        a.add("I");
        a.add("Freedom");
        a.add("Love");

        for (int i = 0; i < a.size(); i++) {
            for (int j = i+1; j < a.size(); j++) {
                if(a.get(i).equals(a.get(j))){
                    a.remove(j);
                    j--;
                }
            }

        }

        Iterator it=a.iterator();
        while(it.hasNext()){
            String s=(String)it.next();
            System.out.println(s);
        }

    }
}

运行结果;

java 集合上机题 java集合例题_System_04

4.已知有十六支男子足球队参加2008 北京奥运会。 写一个程序,把这16 支球队随机分为4 个组,每组4只球队。采用List集合和随机数

2008 北京奥运会男足参赛国家: 
 科特迪瓦,阿根廷,澳大利亚,塞尔维亚, 荷兰,尼日利亚,
 日本,美国,中国,新西兰,巴西,比利时,韩国,喀麦隆,
 洪都拉斯,意大利.
package com.boyi.itLianXi.collection;
/*
* 科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚,日本,美国,中国,
	  新西兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利.
* */
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Football {
    public static void main(String[] args) {
        String s0;
        List<String> ls=new ArrayList<>();

        ls.add("科特迪瓦");
        ls.add("阿根廷");
        ls.add("澳大利亚");
        ls.add("塞尔维亚");
        ls.add("荷兰");
        ls.add("尼日利亚");
        ls.add("日本");
        ls.add("美国");
        ls.add("中国");
        ls.add("新西兰");
        ls.add("巴西");
        ls.add("比利时");
        ls.add("韩国");
        ls.add("柯麦隆");
        ls.add("洪都拉斯");
        ls.add("意大利");

        Random rd=new Random();

        for(int i=0;i<4;i++){

            System.out.println(i+"组:");
            for (int j = 0; j < 4; j++) {
                s0=ls.get(rd.nextInt(ls.size()));
                System.out.print("  "+s0);
                ls.remove(s0);
            }
            System.out.println();
        }
    }
}

运行结果:

java 集合上机题 java集合例题_System_05