集合(主要需要掌握)

本文介绍了Java中的List集合,如ArrayList和LinkedList,强调它们的有序和可重复特性,并展示了如何添加、遍历元素。同时,文章也探讨了Set集合,特别是HashSet的无序和不重复特点,以及TreeSet的自动排序功能。此外,还讲解了HashMap的使用,包括Key和Value的添加及遍历方法。
摘要由CSDN通过智能技术生成

1.List集合(ArrayList和LinkedList类似):有序可重复

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

public class review_1 {
    public static void main(String[] args) {
        //创建集合
        ArrayList arrayList=new ArrayList();
        //LinkedList arrayList=new LinkedList();
        //添加元素
        arrayList.add("zhangsan");
        arrayList.add("lisi");
        arrayList.add("wangwu");
        //取出元素(Array List是通过下标取出)
        arrayList.get(2);//wangwu
        //遍历1--for循环
        for (int i=0;i< arrayList.size();i++){
            System.out.println(arrayList.get(i));
        }
        //遍历2--foreach
        for (Object a:arrayList){
            System.out.println(a);
        }
        //遍历3--Iterator(所有Collection集合都通用)
        Iterator it=arrayList.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

2.Set集合:无序不可重复
HashMap的Key,存储在HashMap集合的Key元素需要重写equals和hashcode

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;

public class review_1 {
    public static void main(String[] args) {
        //创建集合
        HashSet s1=new HashSet();
        //添加元素
        s1.add("zhangsan");
        s1.add("lisi");
        s1.add("wangwu");
        //HashSet没有下标,不能通过下标取出
        //遍历1--foreach
        for (Object a:s1){
            System.out.println(a);
        }
        //遍历2--Iterator
        Iterator it=s1.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}
import java.util.*;

public class review_1 {
    public static void main(String[] args) {
        Set<Student> set1=new HashSet();
        Student student=new Student(1,"lisi");
        Student student1=new Student(2,"zhangsan");
        Student student2=new Student(3,"wangwu");
        set1.add(student);
        set1.add(student1);
        set1.add(student2);
        for (Student a:set1){
            System.out.println(a);
        }
    }
}
class Student{
    private int id;
    private String name;

    public Student(int id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return id == student.id && name.equals(student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name);
    }

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

3.HashSet集合:无序不重复(自动对元素大小排序)

package OOP;

import java.util.*;

public class review_1 {
    public static void main(String[] args) {
        //创建集合
        TreeSet ts=new TreeSet();
        ts.add(12);
        ts.add(1);
        ts.add(11);
        ts.add(4);
        ts.add(2);
        ts.add(3);
        ts.add(2);
        //增强for
        for (Object a:ts){
            System.out.println(a);
        }
        //迭代器
        Iterator it=ts.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

4.HashMap

import java.util.*;

public class review_1 {
    public static void main(String[] args) {
        //创建集合
        HashMap<Integer,String> hashMap=new HashMap<>();
        //添加元素
        hashMap.put(1,"lisi");
        hashMap.put(2,"wangwu");
        hashMap.put(3,"zhaoliu");
        hashMap.put(2,"xiaohuang");//value一样,前面添加的会被覆盖
        //遍历1--通过Key逐一获取
        //先取出所有Key放到set集合
        Set<Integer> set=hashMap.keySet();
        for (Integer i :set){
            System.out.println(i+"="+hashMap.get(i));
        }
        //遍历2--将map集合转换成set集合,set集合中存放每一个都是节点(包括Key和value)
        Set<Map.Entry<Integer,String>> s1=hashMap.entrySet();
        for (Map.Entry<Integer,String> i:s1){
            System.out.println(i.getKey()+"="+i.getValue());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值