java 数组遍历比较问题
list装了String[0]String[1]下面为String[0],String[1]的值1,a2,b3,c1,d1,e像这样的数据我想判断String[0]里有相...
list 装了 String[0] String[1]
下面为String[0] ,String[1] 的值
1 , a
2 , b
3 , c
1 , d
1 , e
像这样的数据 我想判断 String[0] 里有 相同的数据即全都是1的对应的 第一行的a 和 第四行的d ,第五行的e 进行合并
最后显示1 ,a,d, c 这种效果,简单写点代码或给点思路吧 谢谢
1 不是不确定值
补充一下
1 , a
2 , b
3 , c
1 , d
1 , e
2 , e
最后显示
1 a,d, c
2 b,e 展开
下面为String[0] ,String[1] 的值
1 , a
2 , b
3 , c
1 , d
1 , e
像这样的数据 我想判断 String[0] 里有 相同的数据即全都是1的对应的 第一行的a 和 第四行的d ,第五行的e 进行合并
最后显示1 ,a,d, c 这种效果,简单写点代码或给点思路吧 谢谢
1 不是不确定值
补充一下
1 , a
2 , b
3 , c
1 , d
1 , e
2 , e
最后显示
1 a,d, c
2 b,e 展开
展开全部
给你一个思路,首先new一个set
String s="";//用来存放值
Set<String> set = new HashSet<String>();
遍历list,
for(int i=0;i<list.size();i++){
通过遍历得到数组的下标st
if(set.add(st)){//判断st在set里面没有的话,就执行else将下标对应的值拼在一起
}else{
s=s+下标对应的值+",";
}
}
打印你的下标和值就可以了, 这只是一种思路
String s="";//用来存放值
Set<String> set = new HashSet<String>();
遍历list,
for(int i=0;i<list.size();i++){
通过遍历得到数组的下标st
if(set.add(st)){//判断st在set里面没有的话,就执行else将下标对应的值拼在一起
}else{
s=s+下标对应的值+",";
}
}
打印你的下标和值就可以了, 这只是一种思路
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=0;i<list.size();i++){
String[] temp = (String[])list[i];
if(temp[0].equals("1")){
//把符合条件的数据放到另外一个变量中
}
//打印出来符合条件的数据
}
String[] temp = (String[])list[i];
if(temp[0].equals("1")){
//把符合条件的数据放到另外一个变量中
}
//打印出来符合条件的数据
}
追问
那我那个1是不确定值呢?
追答
不确定的值?是什么你应该自己清楚吧,当成一个参数传进来就可以了,不管确定与否,你自己都应该知道要比较的是什么,那才能去找到你要的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不记得Java支不支持下标操作了,如果支持的话你可以使用判断啊,在String[0]中如果值为1就返回String[1]中对应下标的值不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
合理的用好泛型容器,很容易解决这类问题。还是该打牢基础数据结构。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Vector;
public class Test{
public static void main(String[] args) {
String data[][]={
{"1","a"},
{"2","b"},
{"3","c"},
{"1","d"},
{"1","e"},
{"2","f"},
{"3","g"},
{"猫","aaa"},
{"狗","afa"},
{"猫","kka"},
{"狗","lll"}
};
HashMap<String, Vector<String>> map=new HashMap<String, Vector<String>>();
for(String a[]:data){
Vector<String> v;
if(map.containsKey(a[0])){
v=map.get(a[0]);
v.add(a[1]);
}else{
v=new Vector<String>();
v.add(a[1]);
map.put(a[0],v);
}
}
//以上已经排好,下面仅仅为了显示
Iterator<Entry<String, Vector<String>>> iter=map.entrySet().iterator();
while(iter.hasNext()){
Entry<String, Vector<String>> e=iter.next();
System.out.print(e.getKey()+" => ");
Iterator<String> v_iter=e.getValue().iterator();
int count=0;
while(v_iter.hasNext())
System.out.print((count++>0?",":"")+v_iter.next());
System.out.print("\n");
}
}
}
=======
显示
3 => c,g
2 => b,f
1 => a,d,e
狗 => afa,lll
猫 => aaa,kka
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Vector;
public class Test{
public static void main(String[] args) {
String data[][]={
{"1","a"},
{"2","b"},
{"3","c"},
{"1","d"},
{"1","e"},
{"2","f"},
{"3","g"},
{"猫","aaa"},
{"狗","afa"},
{"猫","kka"},
{"狗","lll"}
};
HashMap<String, Vector<String>> map=new HashMap<String, Vector<String>>();
for(String a[]:data){
Vector<String> v;
if(map.containsKey(a[0])){
v=map.get(a[0]);
v.add(a[1]);
}else{
v=new Vector<String>();
v.add(a[1]);
map.put(a[0],v);
}
}
//以上已经排好,下面仅仅为了显示
Iterator<Entry<String, Vector<String>>> iter=map.entrySet().iterator();
while(iter.hasNext()){
Entry<String, Vector<String>> e=iter.next();
System.out.print(e.getKey()+" => ");
Iterator<String> v_iter=e.getValue().iterator();
int count=0;
while(v_iter.hasNext())
System.out.print((count++>0?",":"")+v_iter.next());
System.out.print("\n");
}
}
}
=======
显示
3 => c,g
2 => b,f
1 => a,d,e
狗 => afa,lll
猫 => aaa,kka
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用HashMap吗?
更多追问追答
追问
HashMap 怎么整啊?
追答
俺也写了一个,不过推荐 imkow 的答案
List s=new ArrayList();
s.add(new String[]{"1","a"});
s.add(new String[]{"2","b"});
s.add(new String[]{"2","c"});//我的数据变了哦
s.add(new String[]{"1","d"});
s.add(new String[]{"1","e"});
Set set=new HashSet();
for (int i = 0; i < s.size(); i++) {
StringBuffer sb=new StringBuffer();
sb.append(s.get(i)[0]+"-");
for (int j = 0; j < s.size(); j++) {
if (s.get(i)[0].equals(s.get(j)[0])) {
sb.append(s.get(j)[1]+"-");
}
}
if (sb.length()!=4) {
set.add(sb.toString());
}
}
System.out.println(set);
输出:
[1-a-d-e-, 2-b-c-]
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询