Java集合代码

Java集合

1.Collections

1.1Collections接口的add方法

code:

import java.util.*;

public class AddSelftDemo {
    public static void main(String[] args) {
        //Collections中的addAll()方法演示
        //声明并实例化List类对象
        List<String> list = new ArrayList<String>();

        //添加元素
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");

        //添加自身
        list.addAll(list);

        //输出
        System.out.println(list);
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }

        System.out.println("\n" + "换行");

        Set<String> set = new HashSet<String>();
        //添加元素
        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        set.add("5");
        set.add("6");

        //添加自身(然而set不能添加自身)
        set.addAll(set);

        //输出
        System.out.println(set);
        Iterator<String> iterator1 = set.iterator();
        while (iterator1.hasNext()) {
            System.out.print(iterator1.next() + " ");
        }

    }
}

输出结果:

截图1

1.2Collections接口的toArray方法

code:

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

public class ToArrayDemo {
    public static void main(String[] args){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");

        //无参toArray()
        Object[] str = list.toArray();
        //遍历数组
        printArr(str);
        System.out.println();

        //有参toArray()
        //参数中的数组长度较短
        String[] str01 = new String[list.size() - 1];
        String[] str02 = list.toArray(str01);
        //遍历str01 str02
        System.out.println("参数中的数组长度较短");
        printArr(str01);
        printArr(str02);
        System.out.println();

        //参数中的数组长度刚好
        System.out.println("参数中的数组长度刚好");
        str01 = new String[list.size()];
        str02 = list.toArray(str01);
        printArr(str01);
        printArr(str02);
        System.out.println();

        //有一个初始值,长度刚好,添加的"demo"忽略了
        System.out.println("有一个初始值,长度刚好");
        str01[0] = "demo";
        str02 = list.toArray(str01);
        printArr(str01);
        printArr(str02);
        System.out.println();

        //长度较长
        System.out.println("长度较长");
        str01 = new String[list.size() + 2];
        str02  = list.toArray(str01);
        printArr(str01);
        printArr(str02);
        System.out.println();

        //长度较长,有一个初始值
        System.out.println("长度较长,有一个初始值");
        str01 = new String[list.size() + 2];
        str01[list.size() + 1] = "demo";
        str02  = list.toArray(str01);
        printArr(str01);
        printArr(str02);
        System.out.println();
    }
    
    static  void printArr(Object[] str){
        //遍历数组
        System.out.println("-----数组元素如下:-----");
        for(int i = 0 ; i < str.length ; i++){
            System.out.print(str[i] + " ");
        }
        System.out.println();
    }
}

输出结果:

截图2

2.Map接口

code:

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import sun.invoke.empty.Empty;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapMethodDemo {
    public static void main(String[] args) {
        //声明实例化100000个学生对象
        Student[] stu = new Student[100000];
        for (int i = 0; i < stu.length; i++) {
            stu[i] = new Student("2019010101" + (i + 1), "张" + (i + 1), 18, "港航2班");
        }

        //加入到Map中
        Map<String, Student> map = new HashMap<String, Student>();
        for (int i = 0; i < stu.length; i++) {
            map.put(stu[i].no, stu[i]);
        }

        //遍历
        //映射关系
        Set<Map.Entry<String, Student>> set = map.entrySet();

        //iterator()
        System.out.println("-----iterator()遍历-----");
        long start = System.currentTimeMillis();
        Iterator<Map.Entry<String, Student>> iterator = set.iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Student> entry = iterator.next();
            Student stu01 = entry.getValue();
            //System.out.println(entry.getKey() + " ");
            stu01.print();
        }
        long end = System.currentTimeMillis();

        //toArray()
        System.out.println("------toArray()遍历-----");
        long start01 = System.currentTimeMillis();
        Object[] obj = set.toArray();
        for (int i = 0; i < obj.length; i++) {
            Map.Entry<String, Student> entry = (Map.Entry<String, Student>) obj[i];
            Student stu01 = entry.getValue();
            stu01.print();
        }
        long end01 = System.currentTimeMillis();

        //查找前100名学生是否存在
        //key
        long start02 = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            boolean isExist = map.containsKey(stu[i].no);
            System.out.println(stu[i].no + ((isExist) ? "存在" : "不存在 "));
        }
        long end02 = System.currentTimeMillis();
        //value
        long start03 = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            boolean isExist = map.containsKey(stu[i]);
            System.out.println(stu[i].no + ((isExist) ? "存在" : "不存在 "));
        }
        long end03 = System.currentTimeMillis();

        //输出耗时
        System.out.println("iterator()遍历耗时:" + (end - start));
        System.out.println("toArray()遍历耗时:" + (end01 - start01));
        System.out.println("key查找耗时" + (end02 - start02));
        System.out.println("value查找耗时" + (end03 - start03));
    }
}

输出结果:

遍历结果
截图3
查找结果
截图4
耗时结果
截图5

3.List接口

code:

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

public class ListMethodDemo {
    public static void main(String[] args) {
        //List实例化
        List<String> list = new ArrayList<String>();

        //添加
        //向其中添加一个元素"1"
        list.add("1");
        traverse(list);
        //在第一个位置添加一个元素“2”
        list.add(0, "2");
        traverse(list);
        //在第二个元素添加一个元素“8”
        list.add(1, "8");
        traverse(list);
        //在第一个位置添加list
        list.addAll(0, list);
        traverse(list);


        //查找
        //indexOf()   lastdexOf()
        //查找元素2所在的位置
        System.out.println("最先出现2的位置:" + list.indexOf("2"));
        System.out.println("最后出现2的位置:" + list.lastIndexOf("2"));
        //查找元素3所在的位置
        System.out.println("最先出现3的位置:" + list.indexOf("3"));

        //listIterator()遍历
        System.out.println("listIterator()遍历:");
        ListIterator<String> listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            System.out.print(listIterator.next() + " ");
        }
        System.out.println("listIterator()遍历(部分遍历):");
        ListIterator<String> listIterator1 = list.listIterator(2);
        while (listIterator1.hasNext()) {
            System.out.print(listIterator1.next() + " ");
        }

        //删除
        System.out.println();
        String str = list.remove(1);
        System.out.println("删除的元素:" + str);
        System.out.println("删除后的list集合:");
        traverse(list);

        //截取子集合
        List<String> list01 = list.subList(2, 4); //这个区间是[ ),且右边大于或等于左边的
        System.out.println("截取的子集合:");
        traverse(list01);

        //替换
        list.set(2, "9");
        System.out.println("替换后的list集合:");
        traverse(list);

    }

    static void traverse(List<String> list) {
        //遍历
        System.out.println("-----集合元素如下:-----");
        for (int i = 0; i < list.size(); i++) {
            //集合用get方法获取,不是通过下标
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
    }
}

输出结果:

添加结果:
截图6
查找结果:
截图7
迭代器遍历结果:
截图8
删除结果:
截图9
截取子集合结果:
截图10
替换结果:
截图11

4.ArrayList类

4.1clone()方法

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

public class CloneMethodDemo {
    public static void main(String[] args) {
        //clone  浅克隆
        ArrayList<StringBuffer> list = new ArrayList<StringBuffer>();
        StringBuffer sb = new StringBuffer("Learning,");
        list.add(sb);
        traverse(list);
        @SuppressWarnings("unchecked")
        ArrayList<StringBuffer> list01 = (ArrayList<StringBuffer>) list.clone();
        traverse(list01);

        //修改list中第一个元素的值
        sb = list.get(0);
        sb.append("ArrayList clone() method");
        //遍历
        traverse(list);
        traverse(list01);

        //add()方法  list中添加"second value"
        list.add(new StringBuffer("second value"));
        //遍历
        traverse(list);
        traverse(list01);
    }

    //集合遍历
    static void traverse(ArrayList<StringBuffer> list) {
        System.out.println("-----集合元素-----");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
    }
}

输出结果:

截图12

4.2ensureCapacity()方法

code:

import java.util.ArrayList;

public class EnsureCapacityDemo {
    public static void main(String[] args) {
        //向集合添加100万个元素
        ArrayList<String> list = new ArrayList<String>();
        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            list.add(i + " ");
        }
        long end = System.currentTimeMillis();
        System.out.println("耗时:" + (end - start));


        ArrayList<String> list01 = new ArrayList<String>();
        long start01 = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            list01.add(i + " ");
        }
        list01.ensureCapacity(1000000);
        long end01 = System.currentTimeMillis();
        System.out.println("耗时:" + (end01 - start01));
    }
}

输出结果:

截图13

4.3TrimToSize()方法

code:

import java.util.ArrayList;

public class TrimToSizeMethod {
    public static void main(String[] args) {
        //trimToSize()方法使用
        ArrayList<Integer> list = new ArrayList<Integer>();
        //list中添加3个元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.trimToSize();
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
    }
}

输出结果:

截图14

5.LinkedList类

code:

import java.util.LinkedList;

public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<String>();
        //添加元素
        list.add("1");
        list.add("2");
        list.add("3");
        //遍历
        traverse(list);

        //头部  尾部
        list.addFirst("0");
        list.addLast("4");
        traverse(list);

        //输出头部元素   只是取出来,并不删除
        String first = list.element();
        System.out.println("头部元素:" + first);
        traverse(list);

        //取出头部元素和尾部元素   只是取出来,并不删除
        first = list.getFirst();
        String last = list.getLast();
        System.out.println("头部元素:" + first + "  尾部元素:" + last);
        traverse(list);

        //向尾部添加元素offer()
        list.offer("5");
        traverse(list);

        //头部  尾部元素添加  offerFirst()  offerLast()
        list.offerFirst("-1");
        list.offerLast("6");
        traverse(list);

        //pollFirst()  pollLast()  取出第一个/最后一个元素,并删除
        first = list.pollFirst();
        last = list.pollLast();
        System.out.println("头部元素:" + first + "  尾部元素:" + last);
        traverse(list);

        //pop()  栈顶  (弹出)取出并删除
        first = list.pop();
        System.out.println("栈顶元素:" + first);
        traverse(list);

        //push()   压栈  向栈顶添加一个元素
        list.push("10");
        traverse(list);

        //删除
        first = list.removeFirst();
        last = list.removeLast();
        System.out.println("删除第一个元素:" + first + "  删除的最后一个元素:" + last);
        traverse(list);

        //添加两个重复元素  2  4
        list.add(0, " 2");
        list.add(2, "4");
        traverse(list);

        //删除第一次出现的2 删除最后一次出现的4
        list.removeFirstOccurrence("2");
        list.removeLastOccurrence("4");
        traverse(list);
    }

    static void traverse(LinkedList<String> list) {
        System.out.println("-----集合元素如下:-----");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();
    }
}

输出结果:

截图15

6.Set接口

code:

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetDemo {
    public static void main(String[] args) {
        //无序 不重复
        Set<String> set = new HashSet<String>();
        String s1 = "Hello";
        String s2 = s1;    //输出结果显示,不可重复
        String s3 = "World!";
        String s4 = "你好!";
        set.add(s1);
        set.add(s2);
        set.add(s3);
        set.add(s4);
        //遍历,不能用for循环,没有get()方法
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
    }
}

输出结果:

截图16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值