두 개의 배열을 병합하지 않고 병합하여 이름 값 쌍의 배열이되도록합니다.Java에서 두 개의 배열을 병합하는 방법은 무엇입니까?
firstarray = ["a","aa","aaa"]
secondarray = ["b","bb","bbb"]
result = [["a","b"],["aa","bb"],["aaa","bbb"]]
가장 좋은 방법은 무엇입니까?
두 개의 배열을 병합하지 않고 병합하여 이름 값 쌍의 배열이되도록합니다.Java에서 두 개의 배열을 병합하는 방법은 무엇입니까?
firstarray = ["a","aa","aaa"]
secondarray = ["b","bb","bbb"]
result = [["a","b"],["aa","bb"],["aaa","bbb"]]
가장 좋은 방법은 무엇입니까?
는 :
public static int [][] concat(int a[], int b[]) {
int res[][] = new int[a.length][2];
if (a.length != b.length) {
throw new IllegalArgumentException("lenght are not equal, cannot perform");
}
for (int i = 0; i < a.length; i++) {
res[i][0] = a[i];
res[i][1] = b[i];
}
return res;
}
var result = [];
for(var i = 0; i<firstarray.length; i++) {
result[i] = [firstarray[i], secondarray[i]];
}
일대일 관계가있는 2 개의 배열에 의존합니다. 자바
난 당신이 자바 컬렉션 클래스를 사용하는 것이 좋습니다, 및 배열을 사용하지 않는 것입니다. 배열을 사용해야하는 경우에만 사용하십시오 (예 : 성능상의 이유로). 그렇지 않으면, 학습을 계속하고 Java Collections API에 훨씬 능숙 해집니다.
이 문제에 접근하려면 첫 번째 목록에 고유 항목 (중복되지 않음)이 있다고 가정하면 목록의 두 인스턴스 (배열과 반대)가 생깁니다. 그리고 나서 두 목록의 내용을 넣을 Map 인스턴스를 만듭니다. LinkedHashMap은 첫 번째 목록의 항목 순서를 유지하는 데 사용됩니다. 하나는 첫 번째 목록은 고유 한 값을 가지고 가정 할 수없는 경우
List<String> first = Arrays.asList(new String[] {"a", "aa", "aaa"});
List<String> second = Arrays.asList(new String[] {"b", "bb", "bbb"});
Map<String, String> keyValuePairs = new LinkedHashMap<String, String>();
for (int i = 0, count = first.size(); i < count; ++i) {
keyValuePairs.put(first.get(i), second.get(i));
}
, 그때 List<List<String>>
을 사용합니다 :
다음은 예제 코드입니다. - 당신은 자바 컬렉션 클래스로 원하는 일을 할 방법이없는 경우를 제외하고 배열의 사용을 피 나는 충분히이 점을 강화 수 있다고 생각하지 않습니다
List<String> first = Arrays.asList(new String[] {"a", "aa", "aaa"});
List<String> second = Arrays.asList(new String[] {"b", "bb", "bbb"});
List<List<String>> listOfList= new ArrayList<List<String>>();
for (int i = 0, count = first.size(); i < count; ++i) {
List<String> list = new ArrayList();
list.add(first.get(i));
list.add(second.get(i));
listOfList.add(list);
}
다음은 예제 코드입니다. 내가 배열을 사용하는 유일한 시간은 검증할만한 병목 상태에서 성능을 향상시키는 것입니다. 그리고 나서도 Java 배열을 사용하는 것과 달리 성능을 향상시키는 디자인 수준의 방법을 찾으려고 노력합니다.
맵을 사용하면 항목을 순서대로 저장하지 않습니다 ('LinkedHashMap'을 사용하지 않는 한). 또한 배열을 사용하는 것이 컬렉션 클래스를 사용하는 것보다 빠르다고 생각합니다. 또한 첫 번째 배열/목록의 두 항목이 같은 경우 여기에서 사용하는이 방법은 실패합니다. –
@ SimonAndréForsberg 우수 포인트. 의견에 감사드립니다. 귀하의 포인트를 해결할 수있는 답변을 업데이트했습니다. – chaotic3quilibrium
이름 값 쌍을 원하면 Hashtable이 더 좋지 않습니까? – Skilldrick
Java와 JavaScript는 서로 다른 두 가지 요소입니다. –
자바 또는 자바 스크립트를 말하고 있습니까? 제공하는 코드는 의사 코드 또는 JavaScript 일 수 있습니다. – BoltClock