java集合~Collection--Lsit--ArrayList

#java基础之集合(ArrayList)

###引入:定义一个数组时,数组的大小是固定的,程序一旦运行长度便不可改变,所以引入集合,java中大部分集合都是可以改变的

##ArrayList集合

ArrayList<E>
  • 1.对于ArrayList集合来说,有一个尖括号代表泛型。
  • 2.泛型,也就是装在集合当中的所有元素,全部是同一的类型。
  • 3.注意泛型只能是引用类型,不能是基本类型。

ArrayList<String> list = new ArrayList<>();
  1. 创建一个ArrayList集合,集合的名称是list,里面装的全是String字符串类型的数据
  2. 从JDk1.7开始之后,右侧的尖括号内的内容可以不写,但<>本身还是要有的。

ArrayList<String> list = new ArrayList<>();
    System.out.println(list);
  1. 对于一个ArrayList集合来说,直接打印得到的不是地址值,而是内容。
  2. 如果是空,得到的是空的中括号[]
  3. 如果ArrayList中有内容,则打印的是以[元素, 元素, 元素],这样的格式进行打印

代码:

package day6;
import java.util.ArrayList;
public class demo02ArrayList {
   public static void main(String[] args) {
        //创建一个ArrayList集合,集合的名称是list,里面装的全是String字符串类型的数据。
	    //备注,JDK1.7及以上右侧尖括号可以不写
	    ArrayList<String> list = new ArrayList<>();
	    System.out.println(list);
	    
	    //向集合中添加一些数据,需要用到add方法。
	    list.add("迪丽热巴");
	    System.out.println(list);
	    
	    //ArrayList集合打印的不是地址值,而是内容。
	    //如果是空,则得到的是空的中括号[]
	    list.add("古力娜扎");
	    list.add("玛尔扎哈");
	    list.add("hwyongqiang");
	    System.out.println(list);
	    //如果ArrayList中有内容,则打印的是以[元素, 元素, 元素],这样的格式进行打印
   }
}

##ArryayList当中的常用方法

  1. public boolean add(E e);向集合中添加元素,参数类型和泛型一致,返回值代表是否添加成功。备注:对于ArrayList集合来说,add添加动作一定会成功的,所以返回值可用可不用,但对于其他集合来说,add添加动作不一定成功。
  2. public E get(int index);从集合中获取元素,参数是索引编号,返回值就是对应位置的元素。
  3. public E remove(int index);从集合中删除元素,参数是索引编号,返回值是被删除掉的元素。
  4. public int size();获取集合的的尺寸长度,返回值是集合中包含的元素个数。

public class demo03 {
public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<>();
    System.out.println(list);

    //向集合中添加元素:add;
    System.out.println("向集合中添加元素:add");
    boolean success = list.add("柳岩");
    System.out.println(list);
    System.out.println("添加集合是否成功:" + success);

    list.add("高圆圆");
    list.add("欧阳娜娜");
    list.add("甄子丹");
    System.out.println(list);

    //从集合中获取元素:get。索引从0开始
    String s = list.get(3);
    System.out.println("3号索引位置是:" + s);

    //从集合中删除元素:remove 索引从0 开始
    String remove = list.remove(1);
    System.out.println("删除的是:"+ remove);
    System.out.println(list);

    //获取集合的长度尺寸,也就是其中的元素个数
    int size = list.size();
    System.out.println("集合的长度是:" + size);

    //遍历集合:
    for (int i = 0; i < list.size(); i++) {
          System.out.println(list.get(i));
    }
  }
}

##如果希望向ArrayList集合中存储基本数据类型数据,必须要使用基本类型对应的“包装类”。ArrayList集合当中的泛型只能是引用类型不能是基本类型

  • 基本类型,包装类(引用类型,包装类都位于java.lang包下)
  • byte – Byte
  • short – Short
  • int – Integer 【特殊】
  • long – Long
  • float – Float
  • double – Double
  • char – Character 【特殊】
  • boolean Boolean

###JDk1.5开始,支持自动装箱,自动拆箱。

  1. 自动装箱:基本类型 --> 包装类型
  2. 自动拆箱:引用类型 --> 基本类型

public class demo04 {
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    list.add(100);
    list.add(200);
	
	//使用Integer引用类型接收
    Integer integer = list.get(0);
    System.out.println(integer);
    System.out.println("----------------");
	//使用int类型接收
    int integer2 = list.get(1);
    System.out.println(integer2);
   }
 }

##练习题一:生成个1~33之间的随机整数,添加到集合,并遍历集合。


public class demo05 {
public static void main(String[] args) {
    /**
     * @param: [args]
     * @return: void
     * @Description:
     * 思路:
     *     1.需要一个存储6个数字的集合,类型<Integer>
     *     2.产生随机数,需要用到Random
     *     3.用循环6次,来产生6个随机数,for循环
     *     4.循环内调用r.nextInt(int n), 参数是33:0~32,整体再加上1才是1~33
     *     5.把数字添加到集合中;add
     *     6.遍历集合:for、size、get
     */
    ArrayList<Integer> list = new ArrayList<>();
    Random r = new Random();
    for (int i = 0; i < 6; i++) {
        int num = r.nextInt(33) + 1;
        list.add(num);
    }
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
    }
  }
}

练习题二::自定义四个学生对象,添加到集合,并遍历


    /**
 * 思路:
 * 1.自定义学生(Student)类,一个标准的类有四个部分:所有成员变量用Private,有参构造,无参构造,getset。
 * 2.创建一个集合,用来存储学生对象,泛型<Student>
 * 3.根据类,创建四个学生对象。
 * 4.将四个学生对象添加到集合:add
 * 5.遍历集合:for、size、get
 */
public class demo06 {
public static void main(String[] args) {
    //创建集合
    ArrayList<Student> list = new ArrayList<>();

    //创建学生对象
    Student one = new Student("彭于晏",25);
    Student two = new Student("成龙",24);
    Student three = new Student("胡歌",23);
    Student four = new Student("甄子丹",22);
    
    //将对象添加到集合中
    list.add(one);
    list.add(two);
    list.add(three);
    list.add(four);
    
    //遍历集合
    for (int i = 0; i < list.size(); i++) {
        Student stu = list.get(i);
        System.out.println("姓名:" + stu.getName() + ",年龄:" + stu.getAge());
    }
}

##练习题三:定义一个打印集合的方法(ArrayList作为参数),使用{}括起集合,使用@分割元素。格式参照{元素@元素@元素}(练习目的:集合也是可以当参数传递的,以地地址形式)


public class Print {
public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<>();
    list.add("张三");
    list.add("张四");
    list.add("张五");
    list.add("张六");
    System.out.println(list);//[张三, 张四, 张五, 张六]
    printlist(list);
    /*
    *定义方法的三要素:
    * 返回值类型:只进行打印,void
    * 方法名称:printList
    * 参数列表:ArrayList
    *
    *
    * Expression expected 语法错误
     */

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

##题目四:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中,要求使用自定义方法实现(目的:集合既可以当参数传递,也可以当返回值返回)


public class demo07 {

/*
 *思路:
 * 1.需要创建一个大集合,用来存储int数字,<Integer>
 * 2.随机数字用Random nextInt
 * 3.循环20次,把随机数字放入到大集合中,for循环,add方法
 * 4.定义一个方法,用来进行筛选。
 * 筛选:根据大集合,筛选符合要求的元素,得到小集合
 * 三要素:
 * 返回值类型:ArrayList小集合(里面的个数不确定)
 * 方法名称:getSmallList
 * 参数列表:ArrayList大集合(里面装着20个随机数字)
 * 5.判断(if)是偶数,num % 2 == 0
 * 6.如果是偶数,就放到小集合中,否则不放
 */
public static void main(String[] args) {
    ArrayList<Integer> bigList = new ArrayList<>();
    Random r = new Random();
    for (int i = 0; i < 20; i++) {
        int num = r.nextInt(100) + 1;
        bigList.add(num);
    }
    System.out.println(bigList);
    ArrayList<Integer> smallList = getSmallList(bigList);
    System.out.println(smallList);

}

//此方法接收大集合,返回小集合
public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList) {
    ArrayList<Integer> smallList = new ArrayList<>();
    for (int i = 0; i < bigList.size(); i++) {
        if (bigList.get(i) % 2 == 0) {
            smallList.add(bigList.get(i));
        }
    }
    return smallList;
  }
 }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值