美文网首页
常用集合的基本使用

常用集合的基本使用

作者: c之气三段 | 来源:发表于2021-03-07 13:56 被阅读0次

ArrayList

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

public class Time {
    public static void main(String[] args) {
        List<Integer>list= new ArrayList<>();
        list.add(1);//向末尾插入元素
        list.add(2);
        list.add(3);
        list.add(4);
        list.set(0,8);//修改元素
        list.add(2,6);//向指定位置插入元素,后面的下表依次后移,实际上是数组的拷贝。
        list.size();//list的长度
        list.contains(1);//list是否包含指定元素,帮我们做了遍历查找
        list.remove(0);//删除下标为0的元素,后面的下标依次前移,也是数组拷贝。
        System.out.println( list);
    }

}

LinkedList

import java.util.LinkedList;
import java.util.List;

public class Time {
    public static void main(String[] args) {
        List<Integer>list= new LinkedList<>();//底层是双向链表
        list.add(1);//向末尾添加元素。
        list.add(2);
        list.add(3);
        list.add(1,9);//向指定位置插入元素
        list.set(1,8);//修改指定位置元素
        list.contains(8);//是否包含指定元素
        list.size();//集合长度
        list.get(2);//获得指定索引的元素
        list.remove(1);//删除指定索引的元素
        System.out.println( list);
    }
}

List重写比较器格式

     Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if (o1 < o2){
                    return 1;
                }else{
                    return -1;
                }

            }
        });

HashMap:键值对一一对应,键唯一值不唯一,是无序的如果用自定义对象作为键需要重写hashcode和equals

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

public class Time {
    public static void main(String[] args) {
        Map<String,Object>map=new HashMap<>();
        map.put("age",5);//添加键值对
        map.put("name","lihua");
        map.put("ad","sc");
        map.remove("age");//删除键值对,重载匹配到的值才删除。
        map.replace("name","zhangsan");//修改值
        map.replace("name","zhangsan","wangwu");//匹配到值才去修改他
        map.size();//键值对数量
        Iterator<Map.Entry<String,Object>>iterator= map.entrySet().iterator();
        while (iterator.hasNext()){//这种遍历方法可以通过循环来判断,修改、插入、删除
            Map.Entry<String,Object>entry=iterator.next();
            System.out.println( entry.getKey()+"="+entry.getValue());
        }
    }
}

TreeSet:有序的,自动去重。自定义对象必须创建比较器

import java.util.*;

public class Time {
    public static void main(String[] args) {
        Set<Dog>set=new TreeSet<>(new Comparator<Dog>() {//重写比较器
            @Override
            public int compare(Dog o1, Dog o2) {
               if(o1==null||o2==null||(o1.id==o2.id))
                return 0;
                if(o1.id>o2.id)
                    return 1;
                return -1;
            }
        });
        Dog dog=new Dog(8,"q",5);
        set.add(new Dog(1,"lihua",5));
        set.add(new Dog(2,"zhangsan",2));
        set.add(new Dog(2,"zhangsan",2));
        set.add(new Dog(2,"zhangsan",2));
        set.add(dog);
        dog.setId(6);
        set.add(dog);//经过分析TreeSet的自定义对象比较不仅比较大小而且相等的属性会被删除,也就是去重,地址相等也会去重
        set.remove(dog);//删除,这里没看到修改方法和查询方法
        Iterator<Dog> iterator=set.iterator();
        while (iterator.hasNext()){//遍历
            Dog d=iterator.next();
            System.out.println(d.getName());
        }
    }
}

class Dog{
    Integer id;
    String name;
    Integer age;

    public Dog(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

TreeMap

Map<Person2,Integer> map2 = new TreeMap<>(new Comparator<Person2>(){
            @Override
            public int compare(Person2 o1, Person2 o2)
            {
                if(o1 == null || o2 == null)
                    return 0;
                return o1.getAge()-o2.getAge();
            }
        });
        Person2 p1 = new Person2("zzh",18);
        Person2 p2 = new Person2("jj",17);
        Person2 p3 = new Person2("qq",19);
        map2.put(p1, 1);
        map2.put(p2, 2);
        map2.put(p3, 3);
        for(Entry<Person2, Integer> entry:map2.entrySet())
        {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

相关文章

  • 常用集合的基本使用

    ArrayList LinkedList List重写比较器格式 HashMap:键值对一一对应,键唯一值不唯一,...

  • 2019-06-04

    RedisTemplate常用集合使用说明(一) RedisTemplate常用集合使用说明-opsForValu...

  • Java(二)Java基础--05集合类

    一、常用集合类的使用 常用集合类 二、ArrayList 和 LinkedList 和 Vector 的区别 1、...

  • iOS 基础04--Foundation框架下基本集合类

    iOS 基础04--Foundation框架下基本集合类 不可变集合的最大好处是线程安全。 1、常用基本集合类: ...

  • Python学习日记-集合

    本章目录 Part One:基本概念 Part Two:常用方法 Part Three:不可变集合 基本概念 集合...

  • 集合

    目录 集合简介 创建集合 集合常用方法 集合的运算 1. 集合简介 集合(set):一个无序不重复元素的集,基本功...

  • 集合 -- 迭代器

    Iterator 用于遍历集合 遍历集合常用的方法有 foreach 和 iterator 使用 iterator...

  • Java并发包之ConcurrentHashMap

    之前整理了一份Java中常用的集合类的基本特性:Java常用集合类图解详细介绍了HashMap:HashMap之浅...

  • Java8 中 List 转 Map(Collectors.to

    常用使用技巧 比如过滤自己相关的 id集合

  • java基础-day15-集合和Object

    集合和Object 1. 集合 1.1 为什么要使用集合 1.2 集合结构简述 1.3 集合常用方法 【补充知识点...

网友评论

      本文标题:常用集合的基本使用

      本文链接:https://www.haomeiwen.com/subject/szosqltx.html