Java集合归类(List、set、Map)及Comparator排序

集合:

List集合

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

//Java集合类

public class ListDemo {

    public static void main(String[] args) {

        List<String> list = new ArrayList<String>();

        // 向集合中添加元素

        list.add("A");

        list.add("C");

        list.add("F");

        list.add("B");

        list.add("A");// 允许重复元素

        list.add("D");

        list.add(null);// 允许元素为null

        System.out.println(list);

        // 移除

        list.remove(0);// 通过索引移除

        list.remove("B");// 通过对象移除

        System.out.println(list);

        List<String> list2 = new ArrayList<String>();

        list2.add("C");

        list2.add("D");

        list.removeAll(list2);// 移除list集合中包含的list2集合里的元素

        System.out.println(list);

        System.out.println("用for循环遍历出list集合元素:list.size()");

        for (int i = 0; i < list.size(); i++) {

            System.out.print(list.get(i) + " ");

        }

        System.out.println("\nforeach取值");

        for (String liste : list) {

            System.out.print(liste + " ");

        }

        System.out.println("\nIterator迭代器while遍历");

        Iterator<String> iterator = list.iterator();

        while (iterator.hasNext()) {

            System.out.print(iterator.next() + " ");

            /*

             * 或者写成String string = (String) iterator.next();

             * System.out.println(string+" ");

             */

        }

        System.out.println("\n迭代器for遍历的写法");

        for (Iterator<String> iterator2 = list.iterator(); iterator2.hasNext();) {

            String string = iterator2.next();

            System.out.print(string + " ");

        }

        System.out.println();

        // 返回对象A在List集合中第一次出现的位置索引。

        System.out.println("A在list集合中第一次出现的位置:" + list.indexOf("A"));

        // 最后一次出现的位置索引用lastIndexOf

        // 判断元素在集合中是否存在用contains

        // 替换元素

        list.set(1, "R");

        System.out.println(list);

        // 返回列表中指定的fromIndex和toIndex之间的部分元素

        List<String> lists = list.subList(0, 1);// 索引为[0,1)之间的元素]

        System.out.println(lists);

        System.out.println("list集合是否为空:" + list.isEmpty());

        list.clear();// 清空集合

        System.out.println("list集合是否为空:" + list.isEmpty());

    }

}

Set集合

import java.util.ArrayList;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

//HashSet可以放入null但是不能重复;

//不可添加重复元素

//很多的用法都和List集合差不多;

public class HashSetDemo {

    public static void main(String[] args) {

        HashSet<String> set = new HashSet<>();

        set.add("S");

        set.add("G");

        set.add("J");

        set.add("Y");

        set.add("R");

        set.add("H");

        set.add("N");

        set.add("W");

        set.add("S");// 不允许放入重复元素,但是不会报错

        set.add(null);

        // 打印set集合的元素

        System.out.println(set);

        List<String> list = new ArrayList<String>();

        list.add("H");

        list.add("J");

        list.add("M");

        // 移除set集合中包含的所有的list集合的元素

        set.removeAll(list);

        System.out.println(set);

        System.out.println("foreach遍历");

        for (String string : set) {

            System.out.print(string + "  ");

        }

        System.out.println("\nIterator 迭代器 while");

        Iterator<String> iterator = set.iterator();

        while (iterator.hasNext()) {

            String string = iterator.next();

            System.out.print(string + " ");

        }

        System.out.println("\n Iterator 迭代器 for");

        for (Iterator iterator2 = set.iterator(); iterator2.hasNext();) {

            String string = (String) iterator2.next();

            System.out.print(string + "  ");

        }

        // 获取元素个数

        System.out.println("\nset元素个数:" + set.size());

        System.out.println("set中是否包含F:" + set.contains("F"));

        set.clear();

        System.out.println("set是否为空:" + set.isEmpty());

        System.out.println(set);

    }

}

Java集合归类(List、set、Map)及Comparator排序

Map集合:

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class HashMapAndHashTable {

    public static void main(String[] args) {

        // 使用的是基本数据类型,在声明map对象的时候需要用包装类

        Map<Integer, String> map = new HashMap<Integer, String>();

        map.put(1, "A");

        map.put(2, "C");

        map.put(3, "F");

        map.put(4, "G");

        map.put(5, "E");

        // 当key存在时,第二次使用put添加时系统会自动默认使用第二次的value

        map.put(4, "R");

        map.put(1, null);

        map.remove(3);

        System.out.println(map);

        // 判断是否存在key,如果存在,返回true,如果不存在,返回false。

        System.out.println("判断是否存在key:" + map.containsKey(4));

        System.out.println("判断是否存在value:" + map.containsValue("S"));

        // map.clear();//清空map

        System.out.println("map是否为空:" + map.isEmpty());

        System.out.println(map);

        // 遍历

        Set<Integer> keyset = map.keySet();

        Iterator<Integer> iterator = keyset.iterator();

        while (iterator.hasNext()) {

            Integer intkey = iterator.next();

            System.out.println("key:" + intkey + "value:" + map.get(intkey));

        }

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

        for (Iterator<Integer> iterator2 = keyset.iterator(); iterator2

                .hasNext();) {

            Integer intkey = iterator2.next();

            System.out.println("key:" + intkey + "value:" + map.get(intkey));

        }

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

        for (Integer intkey : keyset) {

            System.out.println("key:" + intkey + "value:" + map.get(intkey));

        }

    }

}

Java集合归类(List、set、Map)及Comparator排序

排序:

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

//Collections常用排序方法

public class SortDemo {

    public static void main(String[] args) {

        List<Integer> list = new ArrayList<Integer>();

        list.add(10);

        list.add(2);

        list.add(3);

        list.add(4);

        list.add(5);

        list.add(6);

        list.add(8);

        list.add(7);

        list.add(9);

        list.add(1);

        System.out.println(list);

        Collections.reverse(list);// 倒序

        System.out.println("倒序排序:" + list);

        Collections.shuffle(list);// 随机排序

        System.out.println("随机排序:" + list);

        Collections.sort(list);// 自然顺序排序

        System.out.println("自然顺序排序:" + list);

        Collections.sort(list, new Comparator<Integer>() {

            @Override

            public int compare(Integer o1, Integer o2) {

                // TODO Auto-generated method stub

                // 从大到小排序

                return o2 - o1;

            }

        });// 从大到小排序

        System.out.println("自定义从大到小顺序排序:" + list);

        Collections.sort(list, new Comparator<Integer>() {

            @Override

            public int compare(Integer o1, Integer o2) {

                // TODO Auto-generated method stub

                // 从小到大排序

                return o1 - o2;

            }

        });// 从小到大排序

        System.out.println("自定义从小到大顺序排序:" + list);

        Collections.swap(list, 0, 4);// 交换元素

        System.out.println("交换元素:" + list);

        // rotate(List list, int distance)

        Collections.rotate(list, 2);// 根据指定的距离轮换指定列表中的元素。

        System.out.println("根据指定的距离轮换指定列表中的元素" + list);

        Collections.rotate(list, -2);

        System.out.println("根据指定的距离轮换指定列表中的元素" + list);

    }

}