尚学堂Java学习日记Day7

今天学习了可变参数和两种容器(ArrayList和HashMap)。

可变参数
1、 位置
方法形参的最后一个位置,同类型的数据个数可变
2、写法
。。。
例:String。。。
3、使用
同一维数组 ,使用时更灵活
尚学堂Java学习日记Day7_第1张图片

方法签名: 方法名+形参类型、个数(与名称无关) 保证唯一性
一个类中可以存在多个同名的方法,签名必须唯一 关注形参不能相同

就近最优原则: 先找自己的签名相同的,没有找其他匹配(兼容的)
签名案例
*/
public class VarTest02{
public static void main(String… args){
int sum =add(“求三个数的和”,1,2,3,4); //(String,int,int,int,int) -->(String,int,int,int…)签名
System.out.println(sum);
}

/**
若干数的和
add(String,int,int,int...)签名
*/
public static int add(String tips,int a,int b,int... arr){
	System.out.println(tips+"---1----");
	int sum =0;		
	for(int e:arr){
		sum +=e;
	}
	return sum;
}

/**
若干数的和
add(String,double,int,int...)签名
*/
public static int add(String tips,double a,int b,int... arr){
	System.out.println(tips+"---2----");
	int sum =0;		
	for(int e:arr){
		sum +=e;
	}
	return sum;
}

容器
Arraylist
尚学堂Java学习日记Day7_第2张图片

案例

import java.util.ArrayList; //定位
public class ArrayListTest02{
public static void main(String… args){
//左边为引用,右边为对象
ArrayList list = new ArrayList();
//使用
list.add(20.0); //不要放20
list.add(18.5);
list.add(100.0);
list.add(0,10.0); //插入元素
double totalCost =0.0;
for(Double money:list){
totalCost += money;
}
System.out.println(totalCost);
}

}

api的应用案例

修改 set(位置,新的数据)
删除 remove()

import java.util.ArrayList; //定位锤子
import java.util.Random;
public class ArrayListTest03{
public static void main(String… args){
//左边为引用,右边为对象
ArrayList list = new ArrayList();

	//存储5个随机整数 [5,100]
	for(int i=0;i<5;i++){
		int num = rnd(5,100);
		list.add(num);
	}
	
	//修改索引为2的元素为100
	list.set(2,100);
	
	//输出所有的元素
	for(Integer temp:list){
		System.out.println(temp);
	}
	//删除第二个元素
	list.remove(2);
	System.out.println("----------");
	for(Integer temp:list){
		System.out.println(temp);
	}
	
}	

/**
 产生[min,max]随机整数
 返回随机整数
*/
public static int rnd(int min,int max){
	Random rnd = new Random(); 
	int num = rnd.nextInt(max-min+1)+min; //[min,max]
	return num;
}

}

获取 get(位置) size() contains(元素) indexOf(元素)

import java.util.ArrayList;
import java.util.Random;
public class ArrayListTest04{
public static void main(String… args){
//左边为引用,右边为对象
ArrayList list = new ArrayList();
//存储5个随机整数 [5,100]
for(int i=0;i<5;i++){
int num = rnd(5,100);
list.add(num);
}

	//获取
	int first = list.get(0);
	System.out.println(first);
	int three = list.get(2);
	System.out.println(three);
	//查找
	boolean flag = list.contains(20);
	System.out.println(flag);
	flag = list.contains(three);
	System.out.println(flag);
	int idx = list.indexOf(three); //查找第一次出现的位置
	System.out.println(idx);
	idx = list.indexOf(20); //查找第一次出现的位置,如果找不到返回-1
	System.out.println(idx);
	
	//总的大小
	int size = list.size();
	System.out.println(size);
	
	System.out.println("---------");
	//遍历
	for(int i =0;i

}

HashMap
1、原理
数组+链表
2、容器(工具)
两个类型,一个类型 Key 另一个类为value 键值对 : 一堆中快速定位一个

尚学堂Java学习日记Day7_第3张图片

案例

import java.util.HashMap;
import java.util.Random;
public class HashMapTest01{
public static void main(String… args){
//存储书籍 数量
HashMap map = new HashMap();
//添加
map.put(“修炼手册”,30);
map.put(“修炼手册”,300); //存在,覆盖
map.put(“java编程思想”,80);
//获取
Integer num = map.get(“java编程思想”);
System.out.println(num);
int size = map.size();
System.out.println(size);
//删除
map.remove(“修炼手册”);
size = map.size();
System.out.println(size);

}	

}

以上Day7学习内容及案例

你可能感兴趣的:(尚学堂Java学习日记Day7)