小chen的java笔记--list和set

本文详细介绍了Java集合框架中List接口的特点和常用操作,包括有序性、索引支持以及add、get、remove和set等方法,并通过代码示例进行演示。同时,文章也阐述了Set接口中的HashSet类,强调其不允许存储重复元素、无序性和基于哈希表的快速查询特性。通过实例展示了HashSet的创建、添加元素和遍历方法。
摘要由CSDN通过智能技术生成

1、1list接口的特点

1、有序集合,存储元素和取出来的元素的顺序是一致的,即存进去是1 2 3 取出来也是1 2 3

2、有索引,包含了一些带索引的方法

2、list操作

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:

  • public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。

  • public E get(int index):返回集合中指定位置的元素。

  • public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。

  • public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

代码如下:

package com.company.demo808;

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

/**
 * - `public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。
 * - `public E get(int index)`:返回集合中指定位置的元素。
 * - `public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。
 * - `public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
 */
public class Listdemo {
    public static void main(String[] args) {
//        创造一个list集合对象
        ArrayList list = new ArrayList();
//        使用add方法往里面增加对象
        System.out.println(list.size());//增加元素前的个数
        list.add("小红");
        list.add("小橙");
        list.add("小黄");
        list.add("小绿");
        list.add("小红");
        System.out.println(list.size());//增加元素后的个数
        System.out.println(list);

//     public void add(int index, E element)`: 将指定的元素,添加到该集合中的指定位置上。
        list.add(4,"小青");// 把小青添加到下表为4的位置 [小红, 小橙, 小黄, 小绿, 小青, 小红]
        System.out.println(list);

//      public E remove(int index)`: 移除列表中指定位置的元素, 返回的是被移除的元素。
        boolean b = list.remove("小橙");
        System.out.println(b);//返回是否删除成功
        System.out.println(list);//[小红,  小黄, 小绿, 小青, 小红]

//     public E set(int index, E element)`:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
        Object o = list.set(1, "罗小黑");
        System.out.println(o);//返回被替换的对象
        System.out.println(list);//[小红, 罗小黑, 小绿, 小青, 小红]

//        list遍历的三种方法
//        使用public E get(int index)`:返回集合中指定位置的元素。
//        使用for循环
        for (int i = 0; i <list.size() ; i++) {
            Object s = list.get(i); //小红 罗小黑 小绿 小青 小红
            System.out.println(s+" ");
        }
        System.out.println("=======================");
//        使用迭代器iterator
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){//当iterator有下一个元素时,继续输出下一个
            Object next = iterator.next();
            System.out.println(next);
        }
        System.out.println("==================");
//        使用增强for
        for (Object s : list) {
            System.out.println(s);//快捷键 集合名.for
        }

    }

}

  2、set接口的特点:

 1、不能存储重复的元素

2、没有索引和带索引的方法,不能使用普通的for循环遍历 HashSet 特点

3、无序集合,存储元素和取出来元素的顺序可能不一样

4、底层是一个哈希表结构,查询的速度非常快

package com.company.demo808;

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

public class HashSetTest {
    public static void main(String[] args) {
//        创造一个hashset对象
        Set<Integer> set = new HashSet<>();
//        使用add方法添加对象
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(1);
//使用迭代器遍历集合
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()){
            Integer next = iterator.next();
            System.out.println(next);
        }
        System.out.println("===================");
//        使用增强for循环遍历集合
        for (Integer integer : set) {
            System.out.println(integer);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值