2012-04-02 92 views
0

我如何保存列表中的数字,我可以从最小值到最大值进行排序。 我创建了新的字符串,我插入所有数字。比我进入列表并对其进行排序。之后,我检查一个数字,我得到颜色od图标。如何从最小编号到最大编号 - Java?

我尝试这样做:

import java.util.Collections; 
import java.util.ArrayList; 
import java.io.*; 

int colour1 = 1; 
int colour2 = 3; 
int colour3 = 2; 
int colour4 = 3; 

String rezerva =colour1, colour2, colour3, colour4; 
List<String> myList = new ArrayList(rezerva); 
Collections.sort(myList); 

colour1 = myList.get(0); 

if (colour1==1){ 
//change icon to red 
} 
else if (colour1==2){ 
//change icon to white 
} 
else { 
//change icon to black 
} 
+0

您的代码将不会接近编译目前。请创建一个简短但完整的程序来演示问题。 – 2012-04-02 13:04:04

+0

String rezerva = colour1,colour2,colour3,colour4;这条线的含义是什么? – erimerturk 2012-04-02 13:05:51

+0

我得到了String rezerva = color1(如1),然后color2(如3)等 – 2012-04-02 13:07:05

回答

4

使用Integer,而不是String为您的列表

Integer colour1=1; 
    Integer colour2=3; 
    Integer colour3=2; 
    Integer colour4=3; 

    ArrayList<Integer> myList = new ArrayList<Integer>(); 
    myList.add(colour1); 
    myList.add(colour2); 
    myList.add(colour3); 
    myList.add(colour4); 
    Collections.sort(myList); 
3

你需要实现一个比较您的具体情况。并把它作为参数传递给Collection.sort()

+1

+1,但我认为如果OP将所有这些逻辑封装到实现“Comparable”接口的类中会更好。 – mre 2012-04-02 13:06:20

+0

也是如此 – 2012-04-02 13:06:38

3

不知道你想要什么......但让你的整数进入榜单,你可以尝试:

List<Integer> myList = Arrays.asList(colour1, colour2, colour3, colour4); 

而且在顶你的颜色是整数,但它们看起来像琴弦底部,或许你可以改一下你的问题有点。我认为解决方案很简单。

3

保存在列表编号: 首先列表应该从int类型,然后通过一个插入一个:

List<Integer> myList = new ArrayList<Integer>(); 
myList.add(colour1); 
myList.add(colour2); 
myList.add(colour3); 
myList.add(colour4); 

进行排序,它只是使用:

Collections.sort(myList); 

,它将工作,因为Integer工具可比较