我的第一个问题。
假设我在java中有字符串的arraylist
ArrayList<string> s= new ArrayList<string>;
它包含按大小排序的列表。
s.add("ab");
s.add("abc");
s.add("aab");
s.add("baab");
s.add("abcd");
我想要做的是,迭代列表并选择具有相同长度的元素组并放入单独的数组数组。
第1组ab 第2组abc,aab等......
我在java中这样做请帮助
答案 0 :(得分:1)
由于它们按尺寸排序已经很容易了。这是一种有效的方法:
ArrayList<ArrayList<String>> listofLists = new ArrayList<ArrayList<String>>();
int length = -1;
for(String str : s) { // where s is your sorted ArrayList of Strings
if(str.length() > length) {
listofLists.add(new ArrayList<String>());
length = str.length();
}
listofLists.get(listofLists.size()-1).add(str);
}
最后,listofLists
将成为ArrayList
个ArrayLists
个Strings
个相同长度的群组。同样,这取决于s
(您的ArrayList<String>
)按大小排序。此外,String
必须在那里大写。
答案 1 :(得分:0)
您可以使用此代码“它可以根据需要使用”
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
ArrayList<String> s = new ArrayList<String>();
s.add("ab");
s.add("abc");
s.add("aab");
s.add("baab");
s.add("abcd");
String[] group1 = new String[s.size()];
String[] group2 = new String[s.size()];
String[] group3 = new String[s.size()];
for(int i = 0 ; i < s.size() ; i++){
if(s.get(i).length() == 2)
group1[i] = s.get(i);
else if(s.get(i).length() == 3)
group2[i] = s.get(i);
else
group3[i] = s.get(i);
}
for(String ss : group1){
if(ss == null)
break;
System.out.println(ss);
}
System.out.println();
for(String ss : group2){
if(ss == null)
continue;
System.out.println(ss);
}
System.out.println();
for(String ss : group3){
if(ss == null)
continue;
System.out.println(ss);
}
}
}
我希望它对你有用。