数组


数组创建的方法有    int [ ] num = new in [4 ];         int [ ]  num = {1,2,3,4};  String [ ] cArray = new String[ ]{"a","b","c","d","e"}
数组的长度是固定的,当你声明一个数组时,他的长度就要给他添加上


检查一个数组存在某个字符
String[] stringArray = { "a", "b", "c", "d", "e" };  
boolean b = Arrays.asList(stringArray).contains("a");  
System.out.println(b);         //true


 连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };  
int[] intArray2 = { 6, 7, 8, 9, 10 };  
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);  
for (int i = 0; i < combinedIntArray.length; i++) {
System.out.println(combinedIntArray[i]);           //1 2 3 4 5 6 7 8 9 10
}


把提供的数组元素放入一个字符串 
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");  
System.out.println(j);  
// a, b, c       
String j = StringUtils.join(new String[] { "a", "b", "c" });  
//abc


移除数组中的元素 
int[] intArray = { 1, 2, 3, 4, 5 };  
int[] removed = ArrayUtils.removeElement(intArray, 3); 
System.out.println(Arrays.toString(removed));    //  1 2 4 5


逆向一个数组 
int[] intArray = { 1, 2, 3, 4, 5 };  
ArrayUtils.reverse(intArray);  
System.out.println(Arrays.toString(intArray));    //5 4 3 2 1




将一个数组列表转换为数组 
String[] stringArray = { "a", "b", "c", "d", "e" };  
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));   将数组转换集合
String[] stringArr = new String[arrayList.size()];   将集合转换数组
arrayList.toArray(stringArr);  
for (String s : stringArr)  
    System.out.println(s);    //a b c d e




将整数转换为字节数组 
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();  
for (byte t : bytes) {  
   System.out.format("0x%x ", t);       //0x0 0x0 0x0 0x8 
}  


/**测试  toCharArray( )方法   */
public static void testToCharArray(){
String str="abcdefgh";
char[] strArray = str.toCharArray();
for (int i = 0; i < strArray.length; i++) {
System.out.print(strArray[i]+"  ");
}
}
//结果 a  b  c  d  e  f  g  h 






二维数组


int [] [] num=new  int [5] [] ;    int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};
二维数组的第一个 [ ]中要填写长度  第二个当你不确定长度时,可以不写


int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
}
} //1 2 3 4 5 6 7 8 9




//对数组进行排序
  public static void main(String args[])
    {
        int[] a={1,4,-1,5,0};
        Arrays.sort(a);
        //数组a[]的内容变为{-1,0,1,4,5}
        for(int i=0;i<a.length;i++)
            System.out.print(a[i]+"  ");
    }



  
import java.util.*;
  
public class ArrayTest {
  
    public static void main(String[] args) {
        //声明数组
        String [] arr;
        int arr1[];
          
        //初始化数组
        int arr2[]=new int[]{1,2,3,4,5};
        String[] array1={"马超","马云","关羽","刘备","张飞"};
        String[] array2=new String[]{"黄渤","张艺兴","孙红雷","小猪","牙哥","黄磊"};
          
        String[] array=new String[5];
      
          
        //查看数组的长度
        int length=array1.length;
        System.out.println("length:  "+array1.length);//length:  5
          
        //输出数组
//        System.out.println(array1);     //结果:[Ljava.lang.String;@32f22097
        System.out.println("arr2:  "+Arrays.toString(arr2));//arr2:  [1, 2, 3, 4, 5]
          
        //遍历数组
        for (int i = 0; i < array1.length; i++) {
          System.out.println(array1[i]);//马超    马云    关羽    刘备  张飞
        }
        //int数组转成string数组
        int[]  array3={1,2,3,4,5,6,7,8,9,0};
        String arrStrings=Arrays.toString(array3);
        System.out.println(arrStrings);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
          
        //从array中创建arraylist
        ArrayList<String> arrayList=new ArrayList<String>(Arrays.asList(array1));
        System.out.println(arrayList);//[马超, 马云, 关羽, 刘备, 张飞]
          
        //数组中是否包含某一个值
        String a="马超";
        if (Arrays.asList(array1).contains(a)) {
            System.out.println("马超在这里");//马超在这里
        }
          
        //将数组转成set集合
        Set<String> set=new HashSet<String>(Arrays.asList(array2));
        System.out.println(set);//[黄磊, 牙哥, 小猪, 张艺兴, 黄渤, 孙红雷]
          
        //将数组转成list集合
        List<String> list=new ArrayList<String>();
        for (int i = 0; i < array2.length; i++) {
            list.add(array2[i]);
        }
        String[] arrStrings2={"1","2","3"};
        List<String > list2=java.util.Arrays.asList(arrStrings2);
        System.out.println("===arr2===");
        System.out.println(list2);//[1, 2, 3]
          
          
        //Arrays.fill()填充数组
        int[] arr3=new int[5];
        Arrays.fill(arr3, 10);  //将数组全部填充10
        System.out.println("===arr3===");
        for (int i = 0; i < arr3.length; i++) {
            System.out.println(arr3[i]);//10  10   10  10  10  
        }
          
        //数组排序
        int[] arr4 = {3, 7, 2, 1, 9};
        Arrays.sort(arr4);
        System.out.println("===arr4===");
        for (int i = 0; i < arr4.length; i++) {
            System.out.println(arr4[i]);//1  2  3  7  9
        }
          
        int[] arr5 = {3, 7, 2, 1, 9,3,45,7,8,8,3,2,65,34,5};
        Arrays.sort(arr5, 1, 4);  //从第几个到第几个之间的进行排序
        System.out.println("===arr5===");
        for (int i = 0; i < arr5.length; i++) {
            System.out.println(arr5[i]);
        }
          
          
        //复制数组
        int[] arr6 = {3, 7, 2, 1};
        int[] arr7=Arrays.copyOf(arr6, 10);  //指定新数组的长度
          
        int[] arr8=Arrays.copyOfRange(arr6, 1, 3); //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素)
        System.out.println("===arr8===");
        for (int i = 0; i < arr8.length; i++) {
            System.out.println(arr8[i]);
        }
          
        //比较两个数组
        int[] arr9 = {1, 2, 3, 4,5,6,7,8,9,0};
        boolean arr10=Arrays.equals(arr6, arr9);
        System.out.println("===arr10===");
        System.out.println(arr10);
      
        //去重复
        //利用set的特性
        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<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("===arr12===");
        System.out.println(Arrays.toString(arr12));
        int[] arr13 = {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 = arr13[0];
        for (int i = 1; i < arr13.length; i++) {
            if (arr13[i] > max) {
                max = arr13[i];
           }
         }
         System.out.println("Max is " + max);
         //计算最小值
         int min = arr13[0];
         for (int i = 0; i < arr13.length; i++) {
           if (arr13[i]<min) {
               min = arr13[i];
           }
         }
         System.out.println("Min is " + min);
    }
  
}







length:  5
arr2:  [1, 2, 3, 4, 5]
马超
马云
关羽
刘备
张飞
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[马超, 马云, 关羽, 刘备, 张飞]
马超在这里
[黄磊, 牙哥, 小猪, 张艺兴, 黄渤, 孙红雷]
===arr2===
[1, 2, 3]
===arr3===
10
10
10
10
10
===arr4===
1
2
3
7
9
===arr5===
3
1
2
7
9
3
45
7
8
8
3
2
65
34
5
===arr8===
7
2
===arr10===
false
[0, 1, 32, 2, 3, 4, 5, 6, 7, 8, 9]
===arr12===
[0, 1, 32, 2, 3, 4, 5, 6, 7, 8, 9]
Max is 32
Min is 0

获取某个字符串中重复最长的字符

/** 根据一段字符串将他转化成char数组 */
	public static String[] getCharArray(String str) {

		int length = str.length();
		String[] strArray = new String[length];

		for (int i = 0; i < strArray.length; i++) {
			int begin = length - 1 - i;
			strArray[i] = str.substring(begin);
		}
		return strArray;
	}

	public static void test(String str) {
		//获取数组
		String[] strArray = getCharArray(str);
		int length = strArray.length;
		//把数组转换成list集合
		List<String> list = Arrays.asList(strArray);
		Collections.sort(list);
		int count = -1;// 重复的长度
		int index = -1;// 字符串在list中的下标
		for (int i = 0; i < length - 1; i++) {
			char[] str1 = list.get(i).toCharArray();
			char[] str2 = list.get(i + 1).toCharArray();
			int len1 = str1.length;
			int len2 = str2.length;
			//因为str1 和 str2 是不同的两个字符串,所以不能确定数组的长度是相同的所以要声明2个变量
			int k1 = 0, k2 = 0;
			//判断首字母是否相同
			if (str1[0] == str2[0]) {
				//判断数组的长度是否已经达到上限,并且要两个数组的字母相同
				//如果相同就比较下一个,知道不相同为止
				while (k1 < len1 && k2 < len2 && str1[k1] == str2[k2]) {
					k1++;
					k2++;
				}
				//判断相同的数组长度是否比已经检查出来的相同的字符串长。如果长就把长度和字符串在list中的下标记录下来
				if (k1 > index) {
					count = k1;//获取最新的长度
					index = i;//获取最新的字符串的下标
				}
			}
		}
		//判断是否存在重复的字符串
		if(index!=-1){
			System.out.println("最长的重复字符串:"+list.get(index).substring(0, count));
		}else{
			System.out.println("没有重复的字符串");
		}
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值