Java基础 (数组)

数组:


首先说明数组的定义和初始化等常用操作:


什么是数组:所谓数组,是相同数据类型的元素按一定顺序排列的集合。
   
数组可以看成是多个相同数据类型数据的组合,对这些数据的统一管理。

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

数组中的元素可以是任何类型,包括基本类型和引用类型。


数组分为:(一般为一维数组和二维数组)。

    
1、声明一个数组:数据类型 [ ] 数组名称 = new 数据类型 [ array.length]
String[] array=new String[5];
java声明数组时不能指定其长度(数组中元素的个数),例如:
int a[5];  //非法

2、初始化数组的方式:

1、//最常用的方式:动态初始化。(也叫作 遍历数组
   使用for循环来对数组进行初始化操作
   
 for ( int  i= 0 ;i<array.length;i++){
//
{   
2、 //对于一个数组元素较少的数组,可以使用静态方法初始化数组。
  

3、//使用foreach遍历数组元素:
  
for ( int array: numbers){
    System.out.println(array);
}


3.查看数组长度;

1
2
int  length=array1.length;
System.out.println( "length:  " +array1.length);

 

4.遍历数组;

1
2
3
for  ( int  i =  0 ; i < array1.length; i++) {
     System.out.println(array1[i]);
}

 

5.int数组转成string数组;

1
2
3
int []  array3={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 };
         String arrStrings=Arrays.toString(array3);
         System.out.println(arrStrings);

 

 6.从array中创建arraylist;

1
2
ArrayList<String> arrayList= new  ArrayList<String>(Arrays.asList(array1));
System.out.println(arrayList);

 

7.数组中是否包含某一个值;

1
2
3
4
5
String a= "马超" ;
String[] array1={ "马超" , "马云" , "关羽" , "刘备" , "张飞" };
if  (Arrays.asList(array1).contains(a)) {
     System.out.println( "马超在这里" );
}

 

8.将数组转成set集合;

1
2
3
String[] array2= new  String[]{ "黄渤" , "张艺兴" , "孙红雷" , "小猪" , "牙哥" , "黄磊" };
     Set<String> set= new  HashSet<String>(Arrays.asList(array2));
     System.out.println(set);

 

9.将数组转成list集合;

1
2
3
4
5
6
7
8
9
10
11
String[] array2= new  String[]{ "黄渤" , "张艺兴" , "孙红雷" , "小猪" , "牙哥" , "黄磊" };
//方法 1.
List<String> list= new  ArrayList<String>();
for  ( int  i =  0 ; i < array2.length; i++) {
     list.add(array2[i]);
}
 
String[] arrStrings2={ "1" , "2" , "3" };
//方法 2.
List<String > list2=java.util.Arrays.asList(arrStrings2);
System.out.println(list2);

 

10.Arrays.fill()填充数组;

1
2
3
4
5
6
int [] arr3= new  int [ 5 ];
         Arrays.fill(arr3,  10 );   //将数组全部填充10
                //遍历输出
         for  ( int  i =  0 ; i < arr3.length; i++) {
             System.out.println(arr3[i]);
         }

 

11.数组排序;

1
2
3
4
5
6
7
8
9
10
11
12
//方法 1.
int [] arr4 = { 3 7 2 1 9 };
Arrays.sort(arr4);          //.sort(int[] a)   放入数组名字
for  ( int  i =  0 ; i < arr4.length; i++) {
     System.out.println(arr4[i]);
}
//方法 2.        
int [] arr5 = { 3 7 2 1 9 , 3 , 45 , 7 , 8 , 8 , 3 , 2 , 65 , 34 , 5 };
Arrays.sort(arr5,  1 4 );   //.sort(a, fromIndex, toIndex)    从第几个到第几个之间的进行排序
for  ( int  i =  0 ; i < arr5.length; i++) {
         System.out.println(arr5[i]);
}

 

12.复制数组;

1
2
3
4
5
6
7
8
//方法 1.
int [] arr6 = { 3 7 2 1 };
int [] arr7=Arrays.copyOf(arr6,  10 );   //指定新数组的长度
//方法 2.        
int [] arr8=Arrays.copyOfRange(arr6,  1 3 );  //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素)
for  ( int  i =  0 ; i < arr8.length; i++) {
         System.out.println(arr8[i]);
}

 

13.比较两个数组;

1
2
3
int [] arr9 = { 1 2 3 4 , 5 , 6 , 7 , 8 , 9 , 0 };
         boolean  arr10=Arrays.equals(arr6, arr9);
         System.out.println(arr10);

 

14.去重复;

1
2
3
4
5
6
7
8
9
10
11
12
13
int [] arr11 = { 1 2 3 4 , 5 , 6 , 7 , 8 , 9 , 0 , 3 , 2 , 4 , 5 , 6 , 7 , 4 , 32 , 2 , 1 , 1 , 4 , 6 , 3 };
//利用set的特性
Set<Integer> set2= new  HashSet<Integer>();
for  ( int  i =  0 ; i < arr11.length; i++) {
     set2.add(arr11[i]);
}
System.out.println(set2);
int [] arr12 =  new  int [set2.size()];
int  j= 0 ;
for  (Integer i:set2) {
     arr12[j++]=i;
}
System.out.println(Arrays.toString(arr12));

 

15.查询数组中的最大值和最小值;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int [] arr11 = { 10 2 3 4 , 5 , 6 , 7 , 8 , 9 , 0 , 3 , 2 , 4 , 5 , 6 , 7 , 4 , 32 , 2 , 1 , 1 , 4 , 6 , 3 };
  //计算最大值
int  max = arr11[ 0 ];
for  ( int  i =  1 ; i < arr11.length; i++) {
      if  (arr11[i] > max) {
          max = arr11[i];
     }
   }
   System.out.println( "Max is "  + max);
   //计算最小值
   int  min = arr11[ 0 ];
   for  ( int  i =  0 ; i < arr11.length; i++) {
     if  (arr11[i]<min) {
         min = arr11[i];
     }
}
   System.out.println( "Min is "  + min);

接下来,说一下为什么要使用数组:


例如一个足球队通常会有几十个人,但是我们来认识他们的时候首先会把他们看作是某某对的成员,然后再利用他们的号码来区分每一个队员,这时候,球队就是一个数组,而号码就是数组的下标,当我们指明是几号队员的时候就找到了这个队员。 同样在编程中,如果我们有一组相同数据类型的数据,例如有10个数字,这时候如果我们要用变量来存放它们的话,就要分别使用10个变量,而且要记住这10个变量的名字,这会十分的麻烦,这时候我们就可以用一个数组变量来存放他们,例如在VB中我们就可以使用dim a(9) as integer(注意:数组的下标是从0开始的,所以10个数的话,下标就是9,a(0)=1)。 使用数组会让程序变的简单,而且避免了定义多个变量的麻烦

什么情况下使用数组?

数组和List的区别数组长度固定List未限定长度,由此就可以看出来数组是在长度固定的时候使用,一般使用List集合列表。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值