我是靠谱客的博主 大气嚓茶,最近开发中收集的这篇文章主要介绍数组方面的知识以及算法题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数组常用的几个方法
1.  声明一个数组

    String[] aArray = new String[5];  
    String[] bArray = {"a","b","c", "d", "e"};  
    String[] cArray = new String[]{"a","b","c","d","e"}; 
2.  输出一个数组

Java代码

    int[] intArray = { 1, 2, 3, 4, 5 };  
    String intArrayString = Arrays.toString(intArray);  
       
    // print directly will print reference value  
    System.out.println(intArray);  
    // [I@7150bd4d  
       
    System.out.println(intArrayString);  
    // [1, 2, 3, 4, 5] 
3.  从一个数组创建数组列表


Java代码

    String[] stringArray = { "a", "b", "c", "d", "e" };  
    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));  
    System.out.println(arrayList);  
    // [a, b, c, d, e]  
4.  检查一个数组是否包含某个值


Java代码

    String[] stringArray = { "a", "b", "c", "d", "e" };  
    boolean b = Arrays.asList(stringArray).contains("a");  
    System.out.println(b);  
    // true 
5.  连接两个数组

Java代码

    int[] intArray = { 1, 2, 3, 4, 5 };  
    int[] intArray2 = { 6, 7, 8, 9, 10 };  
    // Apache Commons Lang library  
    int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2); 

9.  将一个数组转换为集合(set)
Java代码

    Set<String> set = new HashSet<String>(Arrays.asList(stringArray));  
    System.out.println(set);  
    //[d, e, b, c, a] 

11.  移除数组中的元素

Java代码

    int[] intArray = { 1, 2, 3, 4, 5 };  
    int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array  
    System.out.println(Arrays.toString(removed)); 
	
12.数组方面的算法题
给定一个int数组,写一个函数判断该数组中的所有数字是否能组成连续数字。如[1,3,4,6,2,5]能组成连续数字,
【1,2,5,4,7】不能。数组中的数也可能重复
代码:
public boolean  isContinousArray(int[] intArr)  
    {  
        if(intArr==null) return false;  
        if(intArr.length<2) return true;  
        int maxInt=intArr[0],minInt=intArr[0];  
        for(int i:intArr)  
        {  
            System.out.println(i);  
            if(i>maxInt) maxInt=i;  
            if(i<minInt) minInt=i;  
        }  
        for(int value=minInt;value<=maxInt;value++)  
        {  
            boolean found=false;  
            for(int j:intArr)  
            {  
                if(j==value)  
                {  
                    found=true;  
                    break;  
                }  
            }  
            if(!found) return false;  
        }  
        return true/found;  
    }
还有一种算法
	创建一个数组String str = new String("0123456789");
	将数字转换为字符串型,判断该字符串是否是str的子串,是则是连续数字,否则不是。
	
13.求数组的交集
有两个长度分别为m,n的非降序整型数组,其中n>m*m,求这两个数组的交集,要求复杂度尽可能低。

如数组a:-1,4,5

数组b:-15,1,3,4,5,7,8,9,10,15

结果应该是:4,5

代码
public void m1()
{
	Set aSet=new HashSet() ;
	Set bSet=new HashSet() ;
	for(int i=0 ;i<n;i++)
	{
		aSet.add(A[i]) ;
	}    
	for(int i=0 ;i<m;i++)
	{
		bSet.add(B[i]) ;
	}    
	aSet.retainAll(bSet) ;
	for(Integer i:aSet)
	{
		System.out.println(i) ;
	}
    
}

最后

以上就是大气嚓茶为你收集整理的数组方面的知识以及算法题的全部内容,希望文章能够帮你解决数组方面的知识以及算法题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部