黑马程序员技术交流社区
标题:
集合编程!
[打印本页]
作者:
王舒玮
时间:
2012-11-29 22:10
标题:
集合编程!
写一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码 用集合中的工具类实现
作者:
程宏志
时间:
2012-11-29 23:30
import java.util.ArrayList;
public class Demo1
{
/**
* @param args
*/
public static void main(String[] args)
{
/*写一个集合,集合存放的是整形的数据。写一个帮助类,
帮组类中有两个static方法,
一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。
实现上述的代码 用集合中的工具类实现
*/
ArrayList<Integer> al=new ArrayList<Integer>();
al.add(5);
al.add(3);
al.add(6);
al.add(3);
al.add(1);
al.add(19);
al.add(12);
al.add(8);
HelpDemo.sortMax(al);
System.out.println(al);
HelpDemo.sortMIn(al);
System.out.println(al);
}
}
帮助类:
mport java.util.ArrayList;
import java.util.Collections;
public class HelpDemo
{
public static void sortMax(ArrayList<Integer> al)
{
Collections.sort(al);
}
public static void sortMIn(ArrayList<Integer> al)
{
Collections.reverse(al);
}
}
这上面是一种简单的方法
如果你自己写排序方法的话:我把主要的地方给你:
用的思想就是选择排序或是冒泡排序,
在排序中交换值时,这个地方是关键点:
你可以这样 定义一个temp,然后使用set通过角标来修改。
作者:
冯盼
时间:
2012-11-30 02:23
public static void main(String[] args)
{
//定义一个整型数组对象
Integer[] arr = { 3, 4, 8, 1, 6, 2, 5, 45, 12, 33 };
List<Integer> list = Arrays.asList(arr);//将数组对象转换为List集合
System.out.println("排序之前:");
for(Iterator<Integer> it=list.iterator();it.hasNext();)//排序前打印List集合
{
System.out.print(it.next()+" ");
}
//从大到小排序
list = Test9_Help.bigToSmall(list);
System.out.println();//换行
System.out.println("从大到小排序之后:");
for(Iterator<Integer> it=list.iterator();it.hasNext();)//排好序后打印List集合
{
System.out.print(it.next()+" ");
}
//从小到大排序
list = Test9_Help.smallToBig(list);
System.out.println();//换行
System.out.println("从小到大排序之后:");
for(Iterator<Integer> it=list.iterator();it.hasNext();)//排好序后打印List集合
{
System.out.print(it.next()+" ");
}
}
}
class Test9_Help
{
/**
* 从小到大排序
* @param list 原始的集合
* @return 排好序的集合
*/
public static List<Integer> smallToBig(List<Integer> list)
{
Integer[] arr = (Integer[]) list.toArray();
int k;
for (int i = 0; i < arr.length - 1; i++)
{
int temp = i;
for (int j = i + 1; j < arr.length; j++)
{
if (arr[temp] > arr[j])
{
temp = j;
}
}
if(temp!=i)
{
k=arr[temp];
arr[temp]=arr[i];
arr[i]=k;
}
}
return Arrays.asList(arr);
}
/**
* 从大到小排序
* @param list 原始的集合
* @return 排序后的集合
*/
public static List<Integer> bigToSmall(List<Integer> list)
{
Integer[] arr = (Integer[]) list.toArray();
int k;
for (int i = 0; i < arr.length - 1; i++)
{
int temp = i;
for (int j = i + 1; j < arr.length; j++)
{
if (arr[temp] < arr[j])
{
temp = j;
}
}
if(temp!=i)
{
k=arr[temp];
arr[temp]=arr[i];
arr[i]=k;
}
}
return Arrays.asList(arr);
}
作者:
陈山
时间:
2012-11-30 09:26
直接上代码:
package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class Demo {
public static void main(String[] args) {
ArrayList<Integer> c=new ArrayList<Integer>();//创建集合对象
c.add(34);//增加元素
c.add(56);
c.add(23);
c.add(45);
HelpClass.minToMax(c);//调用方法,升序
System.out.println(c);//测试
HelpClass.maxToMin(c);//调用方法,降序
System.out.println(c);//测试
}
}
class HelpClass{//帮助类
public static void minToMax(ArrayList<Integer> c){//升序方法
int [] arr=new int[c.size()];//创建数组
for(int i=0;i<c.size();i++){//遍历集合
arr[i]=c.get(i);//把集合中的元素的值赋给数组中的元素
}
c.clear();//清除集合中的元素
Arrays.sort(arr);//对数组进行排序
for(int x=0;x<arr.length;x++){
c.add(arr[x]);//把数组中的元素添加到集合
}
}
public static void maxToMin(ArrayList<Integer> c){//降序方法
int [] arr=new int[c.size()];
for(int i=0;i<c.size();i++){
arr[i]=c.get(i);
}
c.clear();
Arrays.sort(arr);
for(int x=arr.length-1;x>0|x==0;x--){
c.add(arr[x]);
}
}
}
作者:
陈山
时间:
2012-11-30 09:31
我去,用集合的工具类呀,看错了{:soso_e127:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2