13,100
社区成员
发帖
与我相关
我的任务
分享
//举一个例子 比如现在有2个数组
String []name ={"aa","aa","bb","bb","cc"} //这只是一个范例 因为程序中调用的时候数组元素是会变化的
String []num ={"123","234","235","543","145"} //这只是一个范例 因为程序中调用的时候数组元素是会变化的
//我想要的结果是
String []name = {"aa","bb","cc"};
String []num = {"123,234", "235,543", "145"};
import java.util.*;
public class Test {
public static void main(String[] args) {
try {
String []name ={"aa","aa","bb","bb","cc"};
String []num ={"123","234","235","543","145"};
Map<String, String> map = new HashMap<String, String>();
for (int i=0; i<name.length; i++) {
String v = map.get(name[i]);
if (v == null) {
map.put(name[i], num[i]);
} else {
map.put(name[i], v+","+num[i]);
}
}
name = map.keySet().toArray(new String[0]);
num = map.values().toArray(new String[0]);
System.out.println(Arrays.toString(name));
System.out.println(Arrays.toString(num));
} catch (Throwable e) {
e.printStackTrace();
}
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
try {
String []name ={"aa","aa","bb","bb","cc"};
String []num ={"123","234","235","543","145"};
List<String> nameList = new ArrayList<String>();
List<String> numList = new ArrayList<String>();
for (String s : name) {
if (nameList.contains(s)) {
continue;
}
nameList.add(s);
int idx = Arrays.binarySearch(name, 0, name.length, s);
StringBuilder sb = new StringBuilder(num[idx]);
while (true) {
idx = Arrays.binarySearch(name, idx+1, name.length, s);
if (idx < 0) {
break;
}
sb.append(",").append(num[idx]);
}
numList.add(sb.toString());
}
name = nameList.toArray(new String[0]);
num = numList.toArray(new String[0]);
System.out.println(Arrays.toString(name));
System.out.println(Arrays.toString(num));
} catch (Throwable e) {
e.printStackTrace();
}
}
}
String []name ={"aa","aa","bb","bb","cc"};
String []num ={"123","234","235","543","145"};
List<String> nameList = new ArrayList<String>();
List<String> numList = new ArrayList<String>();
for (String s : name) {
if (nameList.contains(s)) {
continue;
}
nameList.add(s);
int idx = Arrays.binarySearch(name, 0, name.length, s);
StringBuilder sb = new StringBuilder(num[idx]);
while (true) {
idx = Arrays.binarySearch(name, idx+1, name.length, s);
if (idx < 0) {
break;
}
sb.append(",").append(num[idx]);
}
numList.add(sb.toString());
}
name = nameList.toArray(new String[0]);
num = numList.toArray(new String[0]);
System.out.println(Arrays.toString(name));
System.out.println(Arrays.toString(num));
import java.util.Arrays;
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
String []name = {"aa","aa","bb","bb","cc"}; //这只是一个范例 因为程序中调用的时候数组元素是会变化的
String []num = {"123","234","235","543","145"}; //这只是一个范例 因为程序中调用的时候数组元素是会变化的
name = Test.uniqueArray(name);
num = Test.uniqueArray(num);
System.out.println(Arrays.toString(name));
System.out.println(Arrays.toString(num));
}
// 去掉数组中重复的元素
public static String[] uniqueArray(String[] arr) {
return new HashSet<String>(Arrays.asList(arr)).toArray(new String[0]);
}
}
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
String []name ={"aa","aa","bb","bb","cc"}; //这只是一个范例 因为程序中调用的时候数组元素是会变化的
String []num ={"123","234","235","543","145"}; //这只是一个范例 因为程序中调用的时候数组元素是会变化的
Set<String> set = new HashSet<String>();
for (String n : name) {
set.add(n);
}
name = set.toArray(new String[0]);
System.out.println(Arrays.toString(name));
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
try {
String []name ={"aa","aa","bb","bb","cc"};
String []num ={"123","234","235","543","145"};
HashTable map = new HashTable();
for (int i=0; i<name.length; i++) {
Object v = map.get(name[i]);
if (v == null) {
map.put(name[i], num[i]);
} else {
map.put(name[i], v+","+num[i]);
}
}
name = new String[map.size()];
for (int k=0, Enumeration e = map.keys(); e.hasMoreElements(); k++) {
name[k] = String.valueOf(e.nextElement());
System.out.print(name[k]+"\t");
}
num = new String[map.size()];
for (int k=0, Enumeration e = map.elements(); e.hasMoreElements(); k++) {
num[k] = String.valueOf(e.nextElement());
System.out.print(num[k]+"\t");
}
} catch (Throwable e) {
e.printStackTrace();
}
}
}