java将数组中的零放到末尾

package com.shb.java;

/**
 * 将数组中的0放到数组的后边,然后原来的非零数的顺序不改变
 * @author BIN
 *
 */
public class Demo2{
	public static void main(String[] args){
		getArray(new int[]{1,0,0,5,0});
	}

	public static int[] getArray(int[] array){
		int cur = 0;
		for(int i=0;i<array.length;i++){
			if(array[i]!=0){
				array[cur]=array[i];
				cur++;
			}
	}
		for(int i = cur;i<array.length;i++){
			array[i] = 0;
		}
		for(int i:array){

			System.out.println(i);
		}
	return array;
	}
}
时间: 2024-08-04 20:18:28

java将数组中的零放到末尾的相关文章

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main

java删除数组中的第n个数

package test; import java.util.Scanner; public class Deletearr { public static void deletearr(){ Scanner sc=new Scanner(System.in); int[] arr={1,3,5,7,9,8,4}; int[] newarr=new int[arr.length-1]; System.out.println("请输入你想删除数组中的第几个数据:"); int n=sc.

Java 向数组中添加一个元素

方法 一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度. 向数组中添加元素思路: 第一步:把 数组 转化为 集合 list = Arrays.asList(array); 第二步:向 集合 中添加元素 list.add(index, element); 第三步:将 集合 转化为 数组 list.toArray(newArray); 例子: 将数组转化为集合1 String[] arr = {"ID", "姓名", "年龄"

Java去掉数组中的重复的值

可以运用set方法,因为set方法本身不允许有重的值 代码如下: public static void main(String[] args) { int[] a={1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3}; System.out.println(Arrays.toString(a)); Set<Integer> set=new HashSet<Integer>(); for (Integer integer : a) { set.add(i

JAVA从数组中取随机数

import java.util.Random; public class SuiJiShu {public static void main(String[] args) { Random random=new Random(); int [] hong={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33}; int [] lan={1,2,3,4,5,6,7,8,

java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。

1 public class Test3 { 2 3 public static void main(String[] args) { 4 5 int[] grade = {87,88,89,98,78}; 6 7 int m; 8 for(int i = 0; i < 2; i++){ 9 10 m = grade[i]; 11 grade[i] = grade[5-i-1]; 12 grade[5-i-1] = m; 13 14 } 15 for(int j =0; j < 5; j++)

java记录一维数组中多个相同值出现的位置下标

问题描述: 我需要在一个整数型一维数组中,找出相同数字出现的位置下标并记录. 例如: int[] test={3,3,1,1,2,5,1} 最终需要得到的是(数字-->出现的位置下标): 3 -->[0,1] 1 -->[2,3,6] 2 -->[4] 5 -->[5] 接下来通过代码实现我想要的功能,如下: package Test; import java.util.ArrayList; import java.util.LinkedHashMap; import jav

Java动态数组

其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList.下面介绍一下ArrayList作为Java动态数组的用法. 1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度.ArrayList的下标是从0开始. 2.示例代码 [java] view plaincopy package wang48.j

剑指Offer面试题36(Java版):数组中的逆序对

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数 例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{7,6},{7,5},{7,4},{6,4},{5,4}. 看到这个题目,我们的第一反应就是顺序扫描整个数组.每扫描到一个数组的时候,逐个比较该数字和它后面的数字的大小.如果后面的数字比它小,则这两个数字就组成一个逆序对.假设数组中含有n个数字.由于每个数字都要和O(n)个数字做比较,因此这个算法的时间复杂度为