ArrayList

数组的长度不可以发生改变
但是ArrayList集合的长度是可以随意变化的。
对于ArrayList来说,有一个尖括号代表泛型
泛型:也就是装在集合里的所有元素,都是一种类型。
泛型只能是引用类型,不能是基本类型。

注意:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容是空,得到的是[]。

import java.util.ArrayList;

public class Demo02ArrayList{
	public static void main(String[] args){
        //创建了一个ArrayList集合,集合的名称是list,里面全是String类型的数据。
        //从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>还是要写的。
		ArrayList<String> list = new ArrayList<>();
		System.out.println(list); //[]

		//向集合中添加一些数据,需要用到add方法
		list.add("张三");
		System.out.println(list);//[张三]
	}
}

ArrayList当中的常用方法有:
public boolean add(E e): 向集合中添加元素,参数的类型和泛型一致。返回值代表添加成功。
public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
public E remove(int index):从集合中删除元素,参数是索引编号,返回值就是被删掉的元素。
public int size(): 获取集合的尺寸长度,返回值是集合中包含的元素个数。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如果希望向集合ArrayList当中存储基本类型,必须使用基本类型对应的包装类
泛型只能是引用类型,不能是基本类型。

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

从JDK1.5+,支持自动装箱、自动拆箱。
自动装箱: 基本类型---->包装类型
自动拆箱: 包装类型----->基本类型

/*
题目1:生成6个1-33之间的随机数,添加到集合,并遍历集合。

思路:
1.需要存储6个数字,创建一个集合。
2.产生随机数字,需要用到Random
3.用循环6次产生6个随机数
4.循环内调用r.nextInt(33)+1;
5.把数字添加到集合中:add
6.遍历:for 、size、get
*/
import java.util.ArrayList;                         
import java.util.Random;                            
                                                    
public class RandomArr {                            
    public static void main(String[] args){         
        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));        
        }                                           
                                                    
    }                                               
}                                                   
/*
题目2:自定义4个学生对象,添加到集合,并遍历。

思路:
1.自定义Student学生类,四个部分(1.所有成员变量 :private 2.无参构造 3.全参构造 4.get和set)。
2.创建一个集合,用来存储学生对象。泛型:<Student>
3.根据类,创建4个学生对象。
4.将4个学生对象添加到集合中:add
5.遍历集合:for  size   get
*/
import java.util.ArrayList;

public class StuArr {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();

        Student one = new Student("张三",15);
        Student two = new Student("李四",35);
        Student three = new Student("王五",88);
        Student four = new Student("马六",6);

        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());
        }
    }
}
/*
题目3:定义以指定打印格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分割元素
格式参照:{元素@元素@元素}
*/
import java.util.ArrayList;

public class Demo03ArrayListPrint(){
	public static void main(String[] args){
		ArrayList<String> list = new ArrayList<>();
		list.add("张三");
		list.add("李四");
		list.add("王五");
		list.add("马六");
		System.out.println(list);
	}
	/*
	定义方法三要素:
	返回值类型:只打印,没运算,没结果所以用void
	方法名称:printArrayList
	参数列表:ArrayList
	*/
	public static void printArrayList(ArrayList<String> list){
		System.out.print("{");
		for(int i=0; i<list.size(); i++){
			String name = list.get(i);
			if(i == list.size()-1){
				System.out.print(name+"}");
			}else{
				System.out.print(name+"@");
			}
		}
	}
}
/*
题目4:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。要求使用自定义的方法筛选。

思路:
1.需要创建一个集合,用来存储int数字:<Integer>
2.随机数字就用Random  nextInt
3.循环20次,把随机数字放到大集合中:for循环,add方法
4.自定义一个方法,用来进行筛选。  筛选:根据大集合,筛选符合要求的元素,得到小集合。
三要素:
返回值类型:ArrayList小集合(里面元素不确定)
方法名称:getSmallList
参数列表:ArrayList大集合(20个随机数字)
5.判断:num%2==0   是偶数
6.如果是偶数,就放到小集合当中,否则不放。
*/
import java.util.ArrayList;
import java.util.Random;

public class ListReturn {
    public static void main(String[] args) {
        ArrayList<Integer> listBig = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 20; i++) {
            int num = r.nextInt(100)+1;
            listBig.add(num);
        }

        ArrayList<Integer> smallList = getSmallList(listBig);
        System.out.println("偶数总共有:"+smallList.size()+"个");
        for (int i = 0; i < smallList.size(); i++) {
            System.out.println(smallList.get(i));
        }
    }

    //接收大集合参数,返回小集合结果
    public static ArrayList<Integer> getSmallList(ArrayList<Integer> listBig){
        ArrayList<Integer> smallList = new ArrayList<>();

        for (int i = 0; i < listBig.size(); i++) {
            int num = listBig.get(i);
            if (num%2==0){
                smallList.add(num);
            }

        }
        return smallList;

    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值