对象数组
题目:
定义一个数组,用来存储一个Person对象
数组有一个缺点:一旦创建,程序运行期间长度不可以改变
package e1031;
public class Demo01Array {
public static void main(String[] args) {
//首先创建一个长度为3的数组,里面用来存放Person类型的对象
//int[] array = new int[3];
Person[] array = new Person[3];//Person类型的数组
//直接通过构造方法来完成成员变量的赋值
Person one = new Person("迪丽热巴",18);
Person two = new Person("古力娜扎",28);
Person three = new Person("马尔扎哈",38);
//将one当中的地址值赋值到数组的0号元素位置
array[0] = one;
array[1] = two;
array[2] = three;
System.out.println(array[0]);//地址值
System.out.println(array[1]);//地址值
System.out.println(array[2]);//地址值
Person person = array[1];
System.out.println(person.getName());//古力娜扎
//System.out.println(array[1].getName());古力娜扎
}
}
ArrayList集合概述和基本使用
数组的长度不可以发生改变。
但是ArrayList集合的长度是可以改变
对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型之能是引用类型,不能是基本类型
注意事项:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
如果内容是空,得到的是空的中括号:[]
package e1031;
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);//赵丽颖
list.add("迪丽热巴");
list.add("古力娜扎");
list.add("马尔扎哈");
System.out.println(list);//[赵丽颖,迪丽热巴,古力娜扎,马尔扎哈]
//list.add(100);
// 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素必须都是字符串才行
}
}
ArrayList集合的常用方法
public boolean add(E e);向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用
但是对于其他集合,add添加动作不一定成功。
public E get(int index);从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素
public E remove(int index)从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素
public int size(),获取集合的尺寸长度,返回值是集合中包含的元素个数
import java.util.ArrayList;
public class Demo03ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
System.out.println(list);
//向集合中添加元素
boolean success=list.add("张艺兴");
System.out.println(list);
System.out.println("添加的动作是否成功:"+success);
list.add("张艺兴1");
list.add("张艺兴2");
list.add("张艺兴3");
list.add("张艺兴4");
System.out.println(list);
//从集合中获取元素,get,索引值从0开始
String name = list.get(0);
System.out.println("第一号索引位置:"+name);
//从集合中删除元素,remove,索引值从0开始
String removeName = list.remove(2);
System.out.println("被删除的是:"+removeName);
System.out.println(list);
int size = list.size();
System.out.println("集合的长度是:"+size);
}
}
遍历集合
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("小白");
list.add("小黑");
list.add("小明");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
Arraylist集合存储数据
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
byte Byte
short Short
long Long
float Float
char Character
double Double
int Integer
boolean Boolean
package com.Test;
import java.util.ArrayList;
public class Demo1 {
public static void main(String[] args) {
//使用int的包装类Integer,将interesting类型的数字存储进集合中
ArrayList<Integer> arr = new ArrayList<>();
arr.add(100);
arr.add(200);
System.out.println(arr);//[100, 200]
int num = arr.get(1);
System.out.println("第一个元素是 " + num);
}
}
ArrayList练习一 储存对象
题目:生成6个1-33之间的随机整数,添加到集合,并遍历集合
思路:
1.需要存储6个数字,创建一个集合,
2.产生随机数,需要用到Random
3.用循环6次,来产生6个随机数字,for循环
4.循环内调用r.nextInt(int n),参数是33,0-22,整体加一
5.把数字添加到集合中:add
6.遍历集合: for size get
package com.Test;
import java.util.ArrayList;
import java.util.Random;
public class Demo1 {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<>();
Random random=new Random();
for (int i = 0; i < 6; i++) {
int num = random.nextInt(33) + 1;
list.add(num);
}
//遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println("list = " + list.get(i));
}
}
}
练习 三
懒得写了
练习 四
题目:
**
用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中
要求使用自定义方法来实现筛选
**
分析:
1.需要创建一个集合,用来存储int数字:
2.随机数字就用random nextInt
3.循环20次,把随机数字放入达集合中:for循环 ,add方法
4.定义一个方法来进行筛选
筛选:根据大集合,筛选符合要求的元素,得到小集合。
筛选方法的三要素:
返回值类型:ArrayList小集合(里面的元素个数不确定)
方法名称:selectmethod
参数列表:ArrayList大集合(装有随机数)
5.判断(if)是偶数: num % 2 == 0
6.判断是偶数,就将数字放到小集合当中
package com.Test;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random random = new Random();
ArrayList<Integer> list = new ArrayList<Integer>();
System.out.println("请输入想要产生随机数的个数");
int num = sc.nextInt();
// 产生1-100的随机数
for (int i = 0; i < num; i++) {
int a = random.nextInt(100) + 1;
System.out.println(a);
// 将随机数放入集合中
list.add(a);
}
System.out.println("筛选前:");
System.out.println(list);
// 调用筛选方法进行集合内部的数据筛选 规则:取偶数
System.out.println("筛选后:");
//利用没有返回值的方法
selectmethod(list);
//利用带有返回值的方法
ArrayList<Integer> li = selectmethod1(list);
System.out.println(li);
}
private static ArrayList<Integer> selectmethod1(ArrayList<Integer> list) {
ArrayList<Integer> li = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 == 0) {
int a = list.get(i);
li.add(a);
}
}
return li;
}
private static void selectmethod(ArrayList<Integer> list) {
ArrayList<Integer> li = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 == 0) {
int a = list.get(i);
li.add(a);
}
}
System.out.println(li);
}
}
98礼品网专业ab单代发礼品平台,提供24小时自助下单,真实不降权!http://www.98lp.cn
快递代发, 快递代发,免费提供底单www.uudanhaowang.com
礼品网全国区域一件代发礼品,AB单专用代发网站,全网最低批发价。http://www.lpbo.cn礼品网
注册免费试用,专业云仓代发,物流单号提供平台。http://www.88lp.cn
98礼品网专业ab单代发礼品平台,提供24小时自助下单,真实不降权!http://www.98lp.cn
打造淘宝爆款专用礼品代发,提供快递单号/空单/云仓代发服务,http://www.7lp.cn7号礼品网