如果需要找数组的一下用法,到java----工具包 中查找
链接:https://www.cnblogs.com/yanxiaoge/p/10650926.html
数组:
//四种定义数组的方法 int[] num = new int[5]; int[] num1; num1 = new int[5]; int[] num2= new int[]{1,2,3}; int[] num3 = {1,2,3}; num1[0] = 1; 数组赋值 len = num3.length; //注意;如果数组的长度不变,这种的方式效率高 for(;i<=len;) =================== for(int x:num3){ //jdk 1.5 之后 这种方式,也可以遍历数组 System.out.println(x); }
数组初始化默认值
int、short、byte、long默认值是0
char默认值是空(注意不是null,就是什么都没有,空字符)
boolean默认是false
float、dubbo默认是0.0
其他对象默认值是null
public static void main(String[] args){ int[] ints = new int[10]; System.out.println(ints[1]); }
java空指针报错问题:
public class Demo { public static void main(String[] args) { print(null); } public static void print(int[] num){ System.out.println(num); //num=null 如果调用了num.length 就会报错 } }
java可变参数:
public class Demo { public static void main(String[] args) { int[] num = {1,2,3}; //print(num); print2(1,2,3); //直接传参(一串数字) } public static void print(int[] num){ for(int i=0;i<num.length;i++){ System.out.println(num[i]); } } //可变参数只能作为参数列表中的最后一个;可变参数作为数组使用 public static void print2(int...num){ for(int i=0;i<num.length;i++){ System.out.println(num[i]); } } }
数组对象增删改查:
import java.util.Arrays; public class Demo { public static void main(String[] args){ ChickManage chickManage = new ChickManage(5); chickManage.add(new Chick(0,8)); chickManage.add(new Chick(1,2)); chickManage.add(new Chick(2,7)); chickManage.add(new Chick(3,4)); chickManage.add(new Chick(4,9)); chickManage.add(new Chick(5,3)); // System.out.println(Arrays.toString(ChickManage.chicks)); // chickManage.find(7); // chickManage.update(7,22);//将第一个笼子小鸡编号改为22; // chickManage.find(22); chickManage.delete(9);//删除编号为7的小鸡 } } class ChickManage{ static Chick[] chicks = null; //创建一个对象数组,该数组只能添加该对象 private int count = 0; public ChickManage(int num){ if(num>0){ chicks = new Chick[num]; }else{ chicks = new Chick[5]; } } public void add(Chick c){ if(count<chicks.length){ chicks[count] = c; count++; }else{ chicks = Arrays.copyOf(chicks, chicks.length*3/2+1); chicks[count] = c; count++; } } public Chick find(int id){ for(int i=0;i<count;i++){ if(Integer.parseInt(chicks[i].getInfo())==id){ System.out.println("小鸡的编号为"+chicks[i].getInfo()+",在第"+i+"个笼子"); return chicks[i]; } } System.out.println("小鸡编号不存在"); return null; } public void update(int old_id,int new_id){ Chick chick = find(old_id); chick.setInfo(new_id); } public void delete(int id){ Chick chick = find(id); if(chick!=null){ findall(); if(chick.getid()==count-1){ chicks[count-1] = null; count--; }else{ for(int i=chick.getid();i<count;i++){ chicks[i] = chicks[i+1]; } count--; //需要将count-- count是记录的笼子的个数,方便下次添加的时候从哪个地方添加 } findall(); } } public void findall(){ System.out.println(Arrays.toString(chicks)); } } class Chick{ private int id; private int bianhao; public Chick(int id,int bianhao){ this.id = id; this.bianhao = bianhao; } public String getInfo(){ return this.bianhao+""; } public int getid(){ return this.id; } public void setInfo(int bianhao){ this.bianhao = bianhao; } }
数组转list
import java.util.Arrays; import java.util.List; public class T { public static void main(String[] args) { test(); } public static void test(){ Integer x[] ={1,2,3}; //int x[] = {1,2,3} 不支持,不能把基本数据类型转化为列表,原因:asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的 //int[] intArray = {1, 2, 3, 4}; //List<Integer> list = Ints.asList(intArray); 可以使用guava类库的工具方法,把基本数据类型的数组转化为其包装类型的list List<Integer> integers = Arrays.asList(x); System.out.println(integers); //asList方法返回的是数组的一个视图 //视图意味着,对这个list的操作都会反映在原数组上,而且这个list是定长的,不支持add、remove等改变长度的方法。 //integers.add(1) 不支持 } }
方式二
public class T { public static void main(String[] args) { String[] strlist = {"good","good","study","day","day","up"}; Stream<String> stream = Stream.of(strlist); //泛型必须是应用类型,int[] a= {1,1,2}就不行,要使用Interger a = {1,1,1}; List<String> list = stream.collect(Collectors.toList()); //将数组转成集合 list.add("sss"); //可以使用add方法 list.forEach(System.out::println); } }