IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java学习之集合的Collection接口和List接口 -> 正文阅读

[Java知识库]Java学习之集合的Collection接口和List接口

1集合的概念

  • 把集合看做是一个容器,集合不是一个类,是一套集合框架,框架体系包含很多的集合类,java api提供了
  • 集合存储任意类型(基本包装类型,引用类型)
  • 集合对元素的增删查改操作起来非常方便的,专门提供很多方便操作的方法
  • 开发中经常集合来操作数据的,开发地位比较高的,考虑对数据的操作效率上的问题

2 集合的父类Collection接口

2.1常用方法

  • boolean add(E e) 添加某个元素
  • addAll(元素) 添加一个集合
  • remove(object) 删除一个元素
  • removeAll(collection) 删除一个集合
  • c.clear(); //移除所有
  • isEmpty() 判断是否为空
    public static void main(String[] args) {
        //创建集合
        Collection c = new ArrayList();
        //添加

        c.add("张三");
        c.add(10);
        c.add(false);
        c.add('a');
        System.out.println(c);
//        addAll(元素) 添加一个集合
        Collection c2 = new ArrayList();
        c2.add("hello");
        c2.add("world");
        c2.add("java");

        c.addAll(c2);
        System.out.println(c);

        //删除
        System.out.println("删除张三元素是否成功:" + c.remove("张三2"));
        System.out.println(c);

        c.removeAll(c2);
        System.out.println("移除c2集合:" + c);

        //清空和判断是否为空
//        c.clear(); //移除所有
//        System.out.println(c); //[]

        System.out.println(c.isEmpty()); //判断集合中的元素是否为空,为空返回true,否则false

        System.out.println(c.contains("张三222")); //是否包含某个指定的元素,是返回true,否则false

        System.out.println("获取集合中的元素个数:" + c.size()); //leng属性
    }

2.2遍历

  • 使用foreach 遍历
  • 使用迭代器遍历
  • 使用toArray()方法转成数组,再遍历.
  • 使用for遍历
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("张三");
        c.add("李四");
        c.add("王五");
        System.out.println(c);
        //foreach遍历方式
        System.out.println("-------------1");
        for(Object obj : c){
            System.out.println(obj);
        }
        //iterator方法,方式二
        System.out.println("-------------2");

        Iterator it = c.iterator();
        while(it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }
        System.out.println("-------------3");

        //方式三,toArray
        Object[] objs = c.toArray();
        for(Object o : objs){
            System.out.println(o);
        }
        System.out.println("-------------4");

        //方式四
        for(Iterator iterator  = c.iterator();iterator.hasNext();){
            Object obj = iterator.next();
            System.out.println(obj);
        }

        System.out.println("-------------5");
        for(Iterator iterator = c.iterator();iterator.hasNext(); System.out.println(iterator.next())){}



    }

3 List接口

List接口继承了Collection接口,所以Collection接口的方法List都可以使用.

3.1List接口常用方法

添加

  • boolean add(E e) 添加一个元素
  • void add(int index, E element) 添加某个元素到指定位置
    boolean addAll(Collection<? extends E> c) 添加一个集合
  • boolean-addAll(int index, Collection<? extends E> c) 添加一个集合到指定位置

删除

  • E remove(int index) 删除指定位置的元素
  • boolean remove(Object o) 删除某个元素
  • boolean removeAll(Collection<?> c) 删除一个集合

修改

  • E set(int index, E element)

获取

  • E get(int index)
  • int size()
  • 其他
  • int indexOf(Object o)
  • int lastIndexOf(Object o)
  • List subList(int fromIndex, int toIndex)

3.2遍历

  • E get(int index) + int size()
  • ListIterator listIterator()
  • ListIterator listIterator(int index)

员工类:

package listdemo;
import java.util.Objects;
public class Employee {
    //员工属性, id name age salary
    private Integer id;
    private String name;
    private Integer age;
    private Double salary;

    public Employee() {
    }

    public Employee(Integer id, String name, Integer age, Double salary) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    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;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Employee employee = (Employee) o;
        return Objects.equals(id, employee.id) &&
                Objects.equals(name, employee.name) &&
                Objects.equals(age, employee.age) &&
                Objects.equals(salary, employee.salary);
    }

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

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}
public static void main(String[] args) {
        //创建一个list集合
        List list = new ArrayList();
        //添加的方法
        list.add("hello");
        list.add("java");
        list.add(1,"world"); //添加到指定的位置的元素,添加到第二个位置
        list.add("html");
        System.out.println(list);

        List list2 = new ArrayList();
        list2.add("test1");
        list2.add("test2");
        list2.add("test3");

//        list.addAll(list2); //添加一个集合
//        System.out.println(list);

        list.addAll(2,list2); //添加一个新集合到第一个老集合中指定的位置,下标为2
        System.out.println(list);

        //删除

        // *      boolean remove(Object o)
        System.out.println(list.remove("java"));
        System.out.println(list);
        // *      E remove(int index)
        Object obj = list.remove(1);
        System.out.println(obj); //world
        System.out.println(list);

        // *       boolean removeAll(Collection<?> c)
        list.removeAll(list2);
        System.out.println("删除新集合之后:" + list);

        //修改
        // *       E set(int index, E element)
        Object o = list.set(1, "编程语言");
        System.out.println(o);
        System.out.println("修改之后:" + list);

        // 其他
        // *       int indexOf(Object o) 从前面往后某个元素的位置
        // *       int lastIndexOf(Object o) 从后面往前面找某个元素的位置
        // *        List<E> subList(int fromIndex, int toIndex)

        List list3 = new ArrayList();
        list3.add("张三");
        list3.add("李四");
        list3.add("王五");
        list3.add("赵六");
        list3.add("小编");

        int i = list3.indexOf("李四2222");
        System.out.println("李四的位置:" + i);

        System.out.println("找王五的下标位置:" + list3.lastIndexOf("王五"));

        System.out.println(list3);
        List newsList = list3.subList(1, 4); //从老集合中截取1-3的位置的元素,并返回一个新的集合
        System.out.println(newsList); //1,2的位置的元素,3不包括,
    }

List的遍历

  • E get(int index) + int size()
  • ListIterator listIterator()
  • ListIterator listIterator(int index)
  • iterator();
  • toArray();
  • foreach
  • toString
  • for()
  • for()
package listdemo;

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

/**
 * 
 * 遍历
 *  *       E get(int index) + int size()
 *  *      ListIterator<E> listIterator()
 *  *      ListIterator<E> listIterator(int index)
 *          iterator();
 *          toArray();
 *          foreach
 *          toString
 *          for()
 *          for()
 *
 */
public class ListDemo02 {
    public static void main(String[] args) {
        //E get(int index) + int size()
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");

        ListIterator listIterator1 = list.listIterator(1);
        if (listIterator1.hasNext()){
            System.out.println("从第一个元素开始取出:" +listIterator1.next());
        }
        if (listIterator1.hasNext()){
            System.out.println("继续取下一个元素:" +listIterator1.next());
        }


        //size获取集合中元素的个数
        System.out.println(list.size());
        //get(索引)获取指定索引的元素
//        Object o = list.get(0);
//        System.out.println(o); //张三
//        o = list.get(1);
//        System.out.println(o); //李四
//        o = list.get(2);
//        System.out.println(o); //王五
        //以上出现重复,使用循环解决,结合size+get方法
        for (int i = 0; i < list.size(); i++) {
            Object o1 = list.get(i);
            System.out.println(o1);
        }

        List list2 = new ArrayList();
        list2.add("hello");
        list2.add("world");
        list2.add("java");
        ListIterator listIterator = list2.listIterator();//列表迭代器方法,返回迭代器对象
        //正向遍历
        while (listIterator.hasNext()) { //判断集合中是否有可取的下一个元素,如果有
            Object o = listIterator.next(); //取出第一个元素
            System.out.println(o);
        }
        System.out.println("------------------------");
        //逆序遍历,在使用hasPrevious(),previous(),先正序遍历才可以使用这个
        while(listIterator.hasPrevious()){
            Object obj = listIterator.previous();
            System.out.println(obj);
        }
    }
}

4 集合中元素的去重

package listdemo;

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

/**
 * 去除集合中重复的元素
 */
public class ListDemo03 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new Employee(101,"张三",20,2000.0));
        list.add(new Employee(102,"李四",30,3000.0));
        list.add(new Employee(103,"王五",20,2000.0));
        list.add(new Employee(103,"王五",20,2000.0));
        //创建一个新的集合
		List newList = new ArrayList();
        for(Object obj : list){
            if (!newList.contains(obj)){
                newList.add(obj);
            }
        }
        list = newList; //把新集合的数据赋值给到老集合
        //遍历老集合
       for(Object obj : list){
           System.out.println(obj);
        }

        //第二种去除重复的方式
        //冒泡,选择,比较equlas
        //根据选择排序的思想,从第一个元素依次和后面的每一个元素
        for (int i = 0; i < list.size(); i++) {
            for (int j = i+1; j < list.size(); j++) {
                //进行比较,如果第一个元素和第二个元素是相等
                //把第二个元素删除
                if (list.get(i).equals(list.get(j))){
                    list.remove(j);
                    j--;
                }
            }
        }
        for(Object obj : list){
            System.out.println(obj);
        }
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:14:58  更:2022-03-08 22:16:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:01:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码