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);
}
}

浙公网安备 33010602011771号