ArrayList

数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变。但是集合的长度可以改变。因此我们需要学习如何使用集合类,请看以下实例。

public class Person {
 private String name;
 private int age;
 public Person() {
  super();
  // TODO Auto-generated constructor stub
 }
 public Person(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
}
/*
 * 题目:定义一个数组,用来存储3个Person对象。
 * 数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变。
 */
public class Demo01Array {
 public static void main(String[] args) {
  Person[] array = new Person[3];
  Person one = new Person("莉莉", 20);
  Person two = new Person("Li莉", 10);
  Person three = new Person("lili", 30);
  //将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]);
  System.out.println(array[1].getName());
 }
}
import java.util.ArrayList;
/*
 * 数组的长度不可以发生改变
 * 但是ArraList的长度是可以发生改变的
 * 对于ArrayList来说,<>代表泛型,装在集合当中的所有元素,全都是统一的什么类型,泛型只能是引用类型,不能是基本类型。
 * 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
 * 如果内容是空,得到的是空的中括号,[]
*/
public class Demo02ArrayList {
 public static void main(String[] args) {
  //创建了一个ArrayList集合,里面的数据全是String类型
  ArrayList<String> list = new ArrayList<>();
  System.out.println(list);//[]
  //向集合当中添加数据,使用add方法
  list.add("李华");
  System.out.println(list);
  list.add("李梅");
  list.add("李梅");
  list.add("李梅");
  list.add("李梅");
  System.out.println(list);
//  list.add(100);//错误,泛型已经说明是字符串,添加进去的元素必须是字符串才行。
 }
}
import java.util.ArrayList;
/*
 * ArrayList当中的常用方法:
 * public boolean add(E e),向集合当中添加元素,参数的类型和泛型一致。
 * 对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
 * public E get(int index),从集合当中获取元素,参数是所以编号,返回值就是对应位置的元素
 * public E remove(int index),从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素
 * public int size(),获取集合的尺寸长度,返回值就是集合当中包含的元素个数。
 */
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("流星");
  list.add("彗星");
  System.out.println(list);
  //从集合中获取元素,get,索引值从0开始
  System.out.println("第二号索引位置元素:" + list.get(2));
  //从集合中删除元素,remove,索引值从0开始
  String whoRemoved = list.remove(2);
  System.out.println("被删除的是:" + whoRemoved);
  System.out.println(list);
  //获取集合的长度尺寸,也就是其中的元素个数
  int size = list.size();
  System.out.println("集合的长度是:" + size);
 }
}

遍历集合中的元素:

import java.util.ArrayList;
public class Demo04ArrayListEach {
 public static void main(String[] args) {
  ArrayList<String> list = new ArrayList<>();
  list.add("小王");
  list.add("小李");
  list.add("小刘");
  list.add("小张");
  //遍历集合
  for(int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i));
  }
 }
}

关于泛型:

import java.util.ArrayList;
/*
 * 如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
 * 基本类型 包装类(引用类型,包装类都位于java.lang包下)
 * byte  Byte
 * short Short
 * int  Integer【特殊】
 * long  Long
 * float Float
 * double Double
 * char  Character【特殊】
 * boolean Boolean
 * 从JDK1.5开始,支持自动装箱、自动拆箱。
 * 自动装箱:基本类型----》包装类型
 * 自动拆箱:包装类型----》基本类型
 */
public class Demo05ArrayListBasic {
 public static void main(String[] args) {
  ArrayList<String> listA = new ArrayList<>();
  //错误写法,泛型只能是引用类型,不能是基本类型
//  ArrayList<int> listB = new ArrayList<>();
  ArrayList<Integer> listC = new ArrayList<>();
  listC.add(100);
  listC.add(200);
  System.out.println(listC);//[100, 200]
  int num = listC.get(1);
  System.out.println("第一号元素是:" + num);
 }
}

相关练习:

import java.util.ArrayList;
import java.util.Random;
/*
 * 题目:生成6个1~33之间的随机数字,添加到集合,并遍历集合。
 */
public class Demo01ArrayListRandom {
 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));
  }
 }
}
import java.util.ArrayList;
/*
 * 题目:定义以指定格式打印集合的方法
 * 格式:{*元素*元素*元素}
 */
public class Demo02ArrayListPrint {
 public static void main(String[] args) {
  ArrayList<String> list = new ArrayList<>();
  list.add("夏莉");
  list.add("夏利");
  list.add("夏丽");
  list.add("夏历");
  System.out.println(list);
  printArrayList(list);
 }
 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 + "*");
   }
  }
 }
}
import java.util.ArrayList;
/*
 * 题目:自定义4个学生对象,添加到集合,并遍历。
 */
public class Demo02ArrayListStudent {
 public static void main(String[] args) {
  ArrayList<Student> list = new ArrayList<>();
  Student one = new Student("小明", 12);
  Student two = new Student("小李", 17);
  Student three = new Student("小华", 14);
  Student four = new Student("小莉", 13);
  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());
  }
 }
}
public class Student {
 private String name;
 private int age;
 public Student() {
  super();
  // TODO Auto-generated constructor stub
 }
 public Student(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
}
import java.util.ArrayList;
import java.util.Random;
/*
 * 题目:用一个大集合存入20个数字,然后筛选其中的偶数元素,放到小集合当中。
 * 使用自定义的方法来进行筛选。
 */
public class Demo04ArrayListReturn {
 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);
  }
  ArrayList<Integer> smallList = getSmallList(bigList);
  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> bigList) {
  ArrayList<Integer> smallList = new ArrayList<>();
  for (int i = 0; i < bigList.size(); i++) {
   int num = bigList.get(i);
   if (num % 2 == 0) {
    smallList.add(num);
   }
  }
  return smallList;
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值