Java集合与数组实现升序排序的算法设计

//已有一个升序排列的整数数组(含20个整数),要求从键盘输入一个整数后,将该数插入数组,并保持升序,输出该数组的数值验证程序的正确性。

package test_Array;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Scanner;

public class ArrayTest {

public static void main(String[] args){

		ArrayTest at = new ArrayTest();

		at.sortArray();
	//为了体现Java语言的封装特性,我们将主要的执行方法至于main()方法之外
	}

		Object sortArray(){
	        /*
		*这里我们首先创建一个数组并初始化
		*然后讲数组转化为集合后加入从键盘输入的数
		*最后将集合再转化为数组
		*然后调用Arrays.sort()方法在foreach中输出
		*
		*/

			int[] array = new int[]{-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9};
			//这里加入泛型机制,是程序安全性更高
			Collection<Integer> arrayList = new ArrayList<Integer>();

			System.out.println("Old array‘s length:"+array.length);

			for(int i=0;i<array.length;i++){

				System.out.print(" "+array[i]);

				arrayList.add(new Integer(array[i]));
			}

			System.out.print("\n"+"Please input a number:");

			arrayList.add(new Integer(input()));

			System.out.println("Current array‘length:"+arrayList.size());

			Object[] now=arrayList.toArray();

			Arrays.sort(now);

			for(Object currentArray:now){

				System.out.print(" "+currentArray);
			}

			return arrayList;
	}

	static int input() {
	int input = (new Scanner(System.in)).nextInt();
	return input;
}

}
时间: 2024-10-13 06:15:52

Java集合与数组实现升序排序的算法设计的相关文章

Java 集合与数组之间的转换

Java 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 (T...a)是可变参数,看成(T[] a)即可 <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表,这是披着List外表的纯数组,只是原数组的一个视图(对返回列表的更改会“直接写”到数组.) 返回的列表是可序列化的,并且实现了 RandomAcce

java 集合与数组的互转方法,与源码分析

前言 java数组与集合需要互相转换的场景非常多,但是运用不好还是容易抛出UnSupportedOperationException.下面讲解一下互转的方法,以及结合源码分异常产生的原因 集合转数组 List<String> strList = new ArrayList<>(10); strList.add("aa"); strList.add("bb"); strList.add("cc"); String[] str

死磕 java集合之CopyOnWriteArraySet源码分析——内含巧妙设计

问题 (1)CopyOnWriteArraySet是用Map实现的吗? (2)CopyOnWriteArraySet是有序的吗? (3)CopyOnWriteArraySet是并发安全的吗? (4)CopyOnWriteArraySet以何种方式保证元素不重复? (5)如何比较两个Set中的元素是否完全一致? 简介 CopyOnWriteArraySet底层是使用CopyOnWriteArrayList存储元素的,所以它并不是使用Map来存储元素的. 但是,我们知道CopyOnWriteArra

Java 集合转换(数组、List、Set、Map相互转换)

转自:http://blog.csdn.net/top_code/article/details/10552827 1 package com.example.test; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.HashMap; 6 import java.util.HashSet; 7 import java.util.List; 8 import java.util.Map;

java集合和数组互转

方法一:使用Arrays.asList()方法String[] strs = {"one","two","three"};List<String> strList = Array.asList(strs);注意:1)这个方法返回的是基于数组的List视图,并未正在的创建List对象,所以不能对List进行增加和删除操作,进行修改List是,同样会修改到数组.2)数组转换成只读的List,使用Collections.unmodifiab

Java集合和数组的比较(为什么引入集合)

数组不是面向对象的,存在明显的缺陷,集合完全弥补了数组的一些缺点,比数组更灵活更实用,可大大提高软件的开发效率而且不同的集合框架类可适用于不同场合.具体如下: 1)数组的效率高于集合类. 2)数组能存放基本数据类型和对象,而集合类中只能放对象. 3)数组容量固定且无法动态改变,集合类容量动态改变. 4)数组无法判断其中实际存有多少元素,length只告诉了array的容量. 5)集合有多种实现方式和不同的适用场合,而不像数组仅采用顺序表方式. 6)集合以类的形式存在,具有封装.继承.多态等类的特

Java 集合、数组 任意个数数字相加等于一个指定的数

一组数字 任意个数数字相加的和等于指定的数字.  比如数字集合 1,2,3, 4,5,6  ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是按照数组顺序取任意个数相加减,所有大家看到结果只有1+2+3而没有1+3+2或则3+2+1 step1.实体类: static class TestDTO { String id; //id Integer num;//数字 public String getId() { return id; }

java 将字符串数组变为字典顺序排序后的字符串数组

import java.util.ArrayList; import java.util.Collections; import java.util.List; public class StringUtil { public static String[] stringSort(String [] s) { List<String> list = new ArrayList<String>(s.length); for (int i = 0; i < s.length; i

异常处理、常用类、Java集合框架、反射

异常处理: 1.  异常:程序在执行过程中所产生的问题. 异常的三种类:①检查异常:又叫checdked异常或者受检异常.通常是用户错误或者不能被程序员所预见的问题.检查异常需要被解决之后才能通过编译. ②运行时异常:程序在运行过程中可能发生的.可以被程序员所避免的异常类型. ③错误:事实上错误不是异常,但却是用户和程序员无法控制的问题. 2.  异常的控制流程: 异常是被一个方法抛出的对象. (1) 处理异常的三个方法:①捕获这个异常,不让它沿着调用栈继续向下抛. ②捕获这个异常,并继续向下抛