ArrayList

ArrayList

1、相对于数组,ArrayList的长度是可以随意改变的。

2、ArrayList,E指的是泛型,该泛型只能是引用类型,不能是基本类型。例如不能是int,但可以是Intenger。(java1.5之后,支持自动装箱拆箱)

3、直接打印出的结果是[]或内容,不会是地址值。

4、常用方法

public boolean add(E e);

public E get(int index);

public E remove(int index);

public int size();

5、常见问题应用

生成6个1~33之间的随机整数,添加到集合并遍历集合。

import java.util.ArrayList;
import java.util.Random;
public class Demo1 {
    //生成6个1~33之间的随机整数,添加到集合并遍历集合。
    public static void main(String[] args) {
        Random r1 = new Random();
        ArrayList<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < 6; i++) {
            list.add(r1.nextInt());
        }
        System.out.println(list);
    }
}

定义四个学生对象,添加到集合并遍历

public class Student {
    private int num;
    private String name;

    public Student() {
    }

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

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
import java.util.ArrayList;

public class Aplication {
    //定义四个学生对象,添加到集合并遍历
    public static void main(String[] args) {
        Student s1 = new Student(1,"迪丽热巴");
        Student s2 = new Student(2,"赵丽颖");
        Student s3 = new Student(3,"杨紫");
        Student s4 = new Student(4,"杨幂");

        ArrayList<Student> list=new ArrayList<>();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getNum());
            System.out.println(list.get(i).getName());
        }
    }
}

定义以指定格式打印集合的方法(ArrayList类型作为参数)使用{}括起集合,使用@分隔每个元素。(元素@元素@元素)

import java.util.ArrayList;
public class Demo2 {
    //定义以指定格式打印集合的方法(ArrayList类型作为参数)使用{}括起集合,使用@分隔每个元素。(元素@元素@元素)
    public static void main(String[] args) {
        ArrayList<String> list =new ArrayList<>();
        list.add("1233");
        list.add("svsdv");
        list.add("com");
        System.out.println(list);
        sPrint(list);//{1233@svsdv@com}
    }

    public static void sPrint(ArrayList<String> list){
        for (int i = 0; i < list.size(); i++) {
            if(i==0){
                System.out.print("{");
            }
            System.out.print(list.get(i));
            if(i<list.size()-1){
                System.out.print("@");
            }else {
                System.out.print("}");
            }
        }
    }
}

用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到其中的小集合当中,要求使用自定义的方法来实现筛选。

import java.util.ArrayList;
public class Demo3 {
    //用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到其中的小集合当中,要求使用自定义的方法来实现筛选。
    public static void main(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();
        list1.add(1);
        list1.add(3);
        list1.add(4);
        list1.add(8);
        System.out.println(list1);
        System.out.println(even(list1));
    }

   public static ArrayList<Integer> even(ArrayList<Integer> list) {
       ArrayList<Integer> list2 = new ArrayList<>();
       for (int i = 0; i < list.size(); i++) {
           if (list.get(i) % 2 == 0) {
               list2.add(list.get(i));
           }
       }
       return list2;
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库表的设计 不是数据库表设计⼤神 最近做订单系统,出现问题是这样的, 有客户表,订单表,套餐表. 通过下单⽣成订单表. 付款后更改订单状态码为1(表⽰已付款) (1)如果甲订购2份黄焖鸡⽶饭,1瓶矿泉⽔,那么这个订单如何保存这个数据? 剖析: 整个订单系统还要能通过⽤户修改已下单但未付款的订单内容吗?(或许直接取消这次订单重新下单更好) 每个套餐的数量要放⼊⼀个food_numbers字段中,这个字段放在哪⾥才合适?不在foods这个⾷品套餐表,因为 foods 表中纯粹是⾷品套餐 信息. 要有⼀个表可以存放点选的套餐的food_id和food_numbers,(但如果如下图,使⽤字符串字段,存放着food_name,food_numbers,及单笔* 数量的price) (2)通过varchar(2)的字段不可再查,不太灵活. 如果是有个购物车表,(其实可以想成 Order_id ,订单表) 每个⼩订单,存放着订单序列ID,⽤户ID,及⾷品套餐ID,及这个套餐的订购数量. 这样通过 food_id 可以修改其数量,⽽且通过这个 card_id 保存不同的 food_id 及数量. 然后在订单表中加⼊这个 cart_id 作为外键,但这个 cart_id 必须保持是相同的,⽽不是序列⽣成的. (3)⼀个⼈购物,⼀般是⽤⼀个购物车,购物篮. ⽤户在同⼀时间购买多样的⾷品及其数量.按下[下单]按钮,此时只⽣成⼀个 cart_id ,但表中这次购买下单的元组为有⼏样不同的就⼏ ⾏元组. Dao 层可以获取要插⼊的下⼀个序列的值,传导时虽然执⾏了两次 Dao 与数据库的 SQL 连接, (cart_id,customer_id,food_id,food_numbers) 也就是说,这个 createNewCart( cart_id,customer_id,food_id,food_numbers ) 的 Service 层接收的是⼀个这样的数据: import java.util.ArrayList; public class Carts { private long cart_id;//购物车ID private long customer_id;//⽤户ID private ArrayList<Long> food_id;//⾷品(商品)ID private ArrayList<Integer> food_numbers;//⾷品数量值 /* 客户下单后创建此对象 new Carts(接收⼀个购物车数据) public Carts(long cart_id, long customer_id, ArrayList<Long> food_id, ArrayList<Integer> food_numbers) { this.cart_id = cart_id; this.customer_id = customer_id; this.food_id = food_id; this.food_numbers = food_numbers; } } 但传导的数据应是多个,即集合的 food_id 和 food_numbers. ⽽ cart_id 是那么⼀个,⽤户 ID( customer_id )是那么⼀个,这俩 ID 在⼀次下单是只是那么同⼀个, ⽽购物车中的 food 和数量是不固定的,所以使⽤ ArrayList<Long/Integer> 存储起来. (4)使⽤ CartsService 待更,今天太晚了,开着博客码代码了逻辑通顺了. 不完善 待更新 将编程看作是⼀门艺术,⽽不单单是个技术。 敲打的英⽂字符是我的⿊⽩琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起, 现实通往⼆进制的⼤门即将被打开。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘夏520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值