java----数组

如果需要找数组的一下用法,到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);
    }
}

  

原文地址:https://www.cnblogs.com/yanxiaoge/p/10650403.html