ArrayList基本用方法
package day04;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<Integer> a = new ArrayList<Integer>();
//向ArrayList中添加数据
a.add(1);
a.add(2);
a.add(3);
//读取ArrayList中的数据
int a1 = a.get(0);
int a2 = a.get(2);
System.out.println(a1+","+a2);
System.out.println("-----------");
//遍历ArrayList
for(int i = 0;i<a.size();i++) {
System.out.println(a.get(i));
}
System.out.println("-----------");
//删除ArrayList中的数据
a.remove(0);
for(int i = 0;i<a.size();i++) {
System.out.println(a.get(i));
}
System.out.println("------");
//修改数值
a.set(0, 5);
System.out.println(a);
}
}
总结:
- 操作对象类似于数组
- <>中填入泛型参数:要装入的数据类型。Integer、String等或者自己创建的类的对象
- ArrayList:是一种集合数据类型,可以有任意多个数据,长度可以改变。
- a.add()添加的是元素。 a.get()、a.remove() 参数都是索引。a.set(x,y) x为索引值,y为具体数值。
获得ArrayList的方法用:a.size();
类内定义方法和方法重载
package day04;
public class Function {
int a;
int b;
//没有参数,有返回值
public int getSum() {
return this.a + this.b;
}
//带参数且有返回值的方法
public int sum(int a,int b) {
return a+b;
}
//没有返回值的发方法,返回值类型为void
public void say() {
System.out.println("i miss you");
}
//带参数但没有返回值的方法.同名方法,但是参数列表不一样,叫做方法重载
public void say(String name) {
System.out.println(name+"i miss you");
}
//带有多个参数但没有返回值类型
public void say(String a,String b) {
System.out.println(a+"miss"+b);
}
}
package day04;
public class FunctionDemo {
public static void main(String[] args) {
Function a = new Function();
a.a = 50;
a.b = 30;
//调用无参,有返回值方法
System.out.println(a.getSum());
//调用有参,有返回值发方法
int aa = a.sum(5,9);
System.out.println(aa);
//调用无参,无返回值方法
a.say();
//调用有参、无返回值方法
a.say("xx ");
//调用多个参数但没有返回值方法
a.say("xx "," yy");
}
}
总结:
- 方法:用来封装一段逻辑
- 方法格式:public 返回值类型 方法名(){//逻辑}
- 同名方法,但是参数列表不一样,叫做方法重载。
- 在类中定义方法,在main中用对象调用方法。
通过调用静态方法来排序并打印
package day04;
import java.util.ArrayList;
public class Arraylist {
//对list进行排序
public static void sort(ArrayList<Integer> list) {
for(int i = 0;i < list.size()-1;i++) {
for(int j = 0;i < list.size()-1-j;j++) {
if(list.get(j) > list.get(j+1)) {
int temp = list.get(j);
list.set(j, list.get(j+1));
list.set(j+1, temp);
}
}
}
}
//打印list
public static void print(ArrayList<Integer> aa){
for(int i =0;i<aa.size();i++) {
System.out.println(aa.get(i));
}
}
}
package day04;
import java.util.ArrayList;
pblic class ArraylistTest {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(8);
list.add(58);
list.add(45);
list.add(35);
list.add(78);
list.add(84);
//调用排序
Arraylist.sort(list);
//调用打印
Arraylist.print(list);
}
}
总结:
- 普通类需要生成一个类对象才能调用函数:Arraylist bb = new Arraylist(); bb.sort(list); bb.print(list);
和具体得对象没有任何关系可以用静态方法来定义。 - 静态方法,就可以直接用类名调用,称为类得方法。
工具方法的定义和使用
package day04;
import java.util.ArrayList;
public class ListUtils {
// 类方法:对list排序
public static void sort(ArrayList<Integer> list) {
for (int i = 0; i < list.size() - 1; i++) {
for (int j = 0; i < list.size() - 1 - j; j++) {
if (list.get(j) > list.get(j + 1)) {
int temp = list.get(j);
list.set(j, list.get(j + 1));
list.set(j + 1, temp);
}
}
}
}
// 类方法:求最大值
public static int getMax(ArrayList<Integer> list) {
int temp = list.get(0);
for (int i = 0; i < list.size(); i++) {
if (list.get(i) > temp) {
temp = list.get(i);
}
}
return temp;
}
// 类方法:求最小值
public static int getMin(ArrayList<Integer> list) {
int temp = list.get(0);
for (int i = 0; i < list.size(); i++) {
if (list.get(i) < temp) {
temp = list.get(i);
}
}
return temp;
}
//类方法:求平均值
public static float getAvg(ArrayList<Integer> list) {
float temp = 0;
for(int i = 0;i < list.size();i++) {
temp +=list.get(i);
}
temp = temp/list.size();
return temp;
}
}
package day04;
import java.util.ArrayList;
public class ListUtilsTest {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(85);
list.add(87);
list.add(65);
list.add(95);
list.add(47);
list.add(54);
list.add(58);
//调用类发方法排序
ListUtils.sort(list);
System.out.println(list);
//调用类方法求最大值
int a = ListUtils.getMax(list);
System.out.println("最大值:"+a);
//调用类方法求最小值
int b = ListUtils.getMin(list);
System.out.println("最小值:"+b);
//调用类方法求平均值
float c = ListUtils.getAvg(list);
System.out.println("平均值:"+c);
}
}
总结:
- 将不涉及到对象调用,只是对数据进行处理,可以定义为工具类;
工具类中不封装数据属性; - 使用类方法的类名来调用其封装的静态方法;