Java集合框架 关于CollectionListQueueSetHashMap的使用

Posted 11biscuits

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合框架 关于CollectionListQueueSetHashMap的使用相关的知识,希望对你有一定的参考价值。

Main.java

package 集合框架.Collection接口;
/*
*           Iterable(接口)
*           Collection(接口)
* List(接口)        Queue(接口)          Set(接口)
* ArrayList(接口类)    PriorityQueue (接口类)     HashSet(接口类)
* LinkedList(接口类)
* */

import java.util.Collections;

public class Main {
    public static void main(String[]argv){
        //CollectionDemo.show();/*Collection接口*/
        //CollectionDemo.listDemo();/*List接口*/
        //CollectionDemo.queueDemo();/*Queue接口*/
        //CollectionDemo.setDemo();/*Set接口*/
        CollectionDemo.hashMapDemo();/*Map接口*/
    }
}

CollectionDemo.java

package 集合框架.Collection接口;

import 泛型.Instructor;

import java.util.*;

public class CollectionDemo {
    public static void show(){
        /*USE Collection*/
        Collection<String>collection=new ArrayList<>();
        /*---添加元素---*/
        collection.add("a");
        collection.add("b");
        collection.add("c");
        /*---一次添加多个元素---*/
        Collections.addAll(collection,"d","e","f");
        /*迭代集合*/
//        for(var item:collection){
//            System.out.println(item);
//        }
        System.out.println(collection);
        /*---以除某个元素---*/
        collection.remove("a");
        System.out.println(collection);
        /*---是否包含某个元素---*/
        System.out.println(collection.contains("a"));
        /*---返回集合元素个数---*/
        System.out.println(collection.size());
        /*---清空集合---*/
        collection.clear();
        System.out.println(collection.size());
        /*---判断集合是否为空---*/
        System.out.println(collection.isEmpty());
        /*---将集合元素转换为数组---*/
        Object[]objectArray=collection.toArray();
        String[]stringArray=collection.toArray(new String[0]);
        /*---复制集合---*/
        Collection<String>other=new ArrayList<>();
        other.addAll(collection);
        /*---比较集合---*/
        System.out.println(collection.equals(other));
    }
    public static void listDemo(){
        List<String> list=new ArrayList<>();
        /*添加元素*/
        list.add("a");
        list.add("b");
        list.add("c");
        list.add(3,"3");
        /*一次添加多个元素*/
        Collections.addAll(list,"d","e","f");
        System.out.println(list);
        /*获取某个位置的元素*/
        System.out.println(list.get(2));
        /*重新设置某位置的元素*/
        list.set(0,"first");
        /*除去元素*/
        list.remove(1);
        System.out.println(list);
        /*寻找元素:第一个出现的位置*/
        System.out.println(list.indexOf("first"));
        /*寻找元素:最后一次出现的位置*/
        System.out.println(list.lastIndexOf("e"));
        /*截取List*/
        System.out.println(list.subList(0,2));//0 1
        /*使用Comparable接口排序*/
        List<SortSuch>sortSuches=new ArrayList<>();
        sortSuches.add(new SortSuch(23));
        sortSuches.add(new SortSuch(13));
        sortSuches.add(new SortSuch(103));
        Collections.sort(sortSuches);
        //System.out.println(sortSuches);
        /*Comparator interface比较器接口排序*/
        Collections.sort(sortSuches,new sortSuchComparator());
        System.out.println(sortSuches);
    }
    public static void queueDemo(){
        Queue<String> queue=new ArrayDeque<>();
        queue.add("C");//后插
        queue.add("B");
        queue.add("A");
        queue.offer("D");//前插
        //后C B A D前
        System.out.println(queue);
        //获取队列头:不删除
        var frontEl=queue.peek();/*队列为空时返回null*/
        frontEl=queue.element();/*队列为空时抛出异常*/
        System.out.println(frontEl);
        //获取队列头并删除队列头
        frontEl=queue.remove();/*当队列为空时抛出异常*/
        frontEl=queue.poll();/*当队列为空时返回null*/
        System.out.println(queue);
        queue.poll();
        //清空队列
        queue.clear();
    }
    public static  void setDemo(){
        Set<String>collection=new HashSet<>();
        collection.add("a");
        collection.add("a");
        collection.add("a");
        System.out.println(collection);//[a]
        Collection<String>collection1=new ArrayList<>();
        Collections.addAll(collection1,"a","a","b","b");
        Set<String>set=new HashSet<>(collection1);
        System.out.println(set);//[a, b]
        /*集合运算*/
        //union
        collection.addAll(collection1);
        //Intersection 交运算
        collection.removeAll(collection1);
        //差运算
        collection.removeAll(collection1);
        System.out.println(collection);
    }
    public static void hashMapDemo(){
        Map<String, Integer>map=new HashMap<>();
        map.put("hello",23);
        map.put("hello2",43);
        map.put("hello4",53);
        System.out.println(map.get("hello"));//23
        System.out.println(map.get("hellofvd"));//null
        System.out.println(map.getOrDefault("hellodc",-1));//-1
        //判断是否包含某个键
        System.out.println(map.containsKey("hello"));//true
        //遍历
        for(var key:map.keySet()){
            System.out.println(key);
        }
        /*  hello4
            hello2
            hello*/
        for(var entry:map.entrySet()){
            System.out.println(entry);
            /*entry.getKey() entry.getValue()*/
        }
        /*
        hello4=53
        hello2=43
        hello=23
        * */
    }
}

SortSuch.java

package 集合框架.Collection接口;

/*使用Comparable接口排序*/
public class SortSuch implements Comparable<SortSuch>{
    @Override
    public int compareTo(SortSuch o) {
        /*
        * this < other <0
        * this==other =0
        * this > other >0
        * */
        return this.money-o.money;
    }
    public int money;
    public SortSuch(int money){
        this.money=money;
    }
    @Override
    public String toString(){
        return String.valueOf(money);
    }
}

sortSuchComparator.java

package 集合框架.Collection接口;

import java.util.Comparator;

public class sortSuchComparator implements Comparator<SortSuch> {

    @Override
    public int compare(SortSuch o1, SortSuch o2) {
        return o1.money-o2.money;
    }
}

以上是关于Java集合框架 关于CollectionListQueueSetHashMap的使用的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE_集合(集合简单认识CollectionList)

集合框架

JCF框架(集合)

java基础09-集合类

java集合

java关于集合框架,说法不正确的是( )