小白学集合之List接口

List子接口

它的父类是collcetion

  • 特点:有序、有下标,元素可以重复

有序指的是:插入和取出的顺序一样

  • 方法:

void add(int index, Object o) //在index位置插入对象o

boolean addAll(int index, Collection c) //将一个集合中的元素插入到此集合index位置

Object get(int index) //返回集合中指定位置的元素

List subList(int fromIndex, int toIndex) //返回formIndex和toIndex之间的集合元素

list遍历可以使用for循环,因为有下标。列表迭代器ListIterator方法如下图。

下边的ListDemo类比较基础的一些操作

list.nextIndex() 输出当前下标

list.next() 返回列表中的下一个元素,并且前进光标位置。

package com.list;

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

/**
 * List子接口的使用
 * 特点:有序、有下标,可重复
 */
public class ListDemo {
    public static void main(String[] args) {
        //1、创建集合对象
        List list = new ArrayList();

        //2、添加元素
        list.add("苹果");
        list.add("小米");
        list.add("华为");
        System.out.println("元素个数" + list.size());
        System.out.println(list.toString());

        //3、删除元素。可以元素或者下表
        //list.remove("苹果");
//        list.remove(0);
//        System.out.println("元素个数"+list.size());
//        System.out.println(list.toString());

        //4、遍历
        //4.1、可以使用for遍历。因为有下标
        for (int i =0 ; i < list.size(); i++) {
            System.out.println("for遍历:"+list.get(i));
        }

        //4.2、增强for遍历
        for (Object o : list) {
            System.out.println("增强for遍历:"+o);
        }

        //4.3、使用迭代器遍历
        Iterator it = list.iterator();
        while (it.hasNext()) {
            Object next = it.next();
            System.out.println("迭代器遍历:"+next);
        }

        //4.4、使用列表迭代器遍历。和Iterator的区别,ListIterator可向前或者向后遍历,
        ListIterator lit = list.listIterator();
        System.out.println("----从前往后遍历----");
        while (lit.hasNext()){
            //lit.nextIndex() 输出当前下标
            //lit.next()  返回列表中的下一个元素,并且前进光标位置。 
            System.out.println(lit.nextIndex()+":"+lit.next());
        }

        System.out.println("----从后往前遍历----");
        while (lit.hasPrevious()){
            System.out.println(lit.previousIndex()+":"+lit.previous());
        }

        //5、判断
        System.out.println("集合是否包含苹果:"+list.contains("苹果"));
        System.out.println("集合是否为空:"+list.isEmpty());

        //6、获取元素位置
        System.out.println("获取华为元素下标:"+list.indexOf("华为"));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我可以给你一个示例: 假设你有一个订单(Order)对象,每个订单有多个商品(Item)。你想要查询一个订单及其包含的所有商品,可以使用MyBatis的一对多映射关系。 首先,定义Order对象和Item对象: ```java public class Order { private int id; private String orderNo; private List<Item> items; // getter和setter方法 } public class Item { private int id; private String name; private int count; // getter和setter方法 } ``` 然后,定义一个Mapper接口,查询一个订单以及其包含的所有商品: ```java public interface OrderMapper { Order selectOrderById(int id); } ``` 在这个接口中,我们只需要定义一个方法,通过订单ID查询订单及其包含的所有商品。现在,我们需要编写一个对应的XML映射文件: ```xml <mapper namespace="com.example.mapper.OrderMapper"> <resultMap id="orderMap" type="Order"> <id property="id" column="id"/> <result property="orderNo" column="order_no"/> <!-- 配置一对多关系 --> <collection property="items" ofType="Item"> <id property="id" column="item_id"/> <result property="name" column="name"/> <result property="count" column="count"/> </collection> </resultMap> <select id="selectOrderById" resultMap="orderMap"> SELECT o.id, o.order_no, i.id AS item_id, i.name, i.count FROM orders o LEFT JOIN items i ON o.id = i.order_id WHERE o.id = #{id} </select> </mapper> ``` 在这个XML文件中,我们首先定义了一个resultMap,用于将查询结果映射到Order对象中。在resultMap中,我们定义了一对多的映射关系,将订单对象和商品对象关联起来。然后,我们定义了一个select语句,根据订单ID查询订单及其包含的所有商品。最后,我们将resultMap和select语句关联起来。 现在,我们就可以在OrderMapper中调用selectOrderById方法,查询一个订单及其包含的所有商品了。查询结果会包含一个Order对象,其中的items属性是一个List集合,包含了该订单的所有商品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值