- PR -

複数の配列を簡単に1つの配列にまとめることはできますか?

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2004/08/03
投稿数: 21
投稿日時: 2005-01-05 17:58
件名がわかりにくくてすみません。
複数の配列を簡単に1つにまとめるってのは
String[] a1 = new String {1,2,3};
String[] a2 = new String {4,5,6};
String[] a3 = new String {7,8,9};
を1つの配列にしたいのですが・・・
String[] a = new String[a1.size + a2.size + a3.size];

あとはループで1つづつ入れていく、ちょっと面倒な処理しか思いつかず
簡単になる方法やAPIがあったら教えてほしいです。



コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-01-05 19:01
private char a [][] = { {'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
};

これが面倒臭い場合は、

private char a[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9' };

これも気に入らないと。
しょうがないので、

private static char a1[] = {'1', '2', '3'};
private static char a2[] = {'4', '5', '6'};
private static char a3[] = {'7', '8', '9'};
private static String b;

b=new String(a1);
b=b.concat(new String(a2));
b=b.concat(new String(a3));

_________________
日本の中心で、オフを叫ぶ(@名古屋)。 ご意見募集中!
コブラ
a-san
常連さん
会議室デビュー日: 2004/03/15
投稿数: 30
投稿日時: 2005-01-05 19:17
こんな感じ?
public class ArrayCopy {
public static void main(String[] args) {
String[] a1 = {"1","2","3"};
String[] a2 = {"4","5","6"};
String[] a3 = {"7","8","9"};
String[] b = new String[a1.length+a2.length+a3.length];
int destPos = 0;
System.arraycopy(a1, 0, b, destPos, a1.length);
destPos += a1.length;
System.arraycopy(a2, 0, b, destPos, a2.length);
destPos += a2.length;
System.arraycopy(a3, 0, b, destPos, a3.length);
for (int i=0; i<b.length; i++) {
System.out.println(b[i]);
}
}
}
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2005-01-05 19:36
Arrays.asList()とList.addAll()とList.toArray()を組み合わせて使うとかどうでしょう
すめし
会議室デビュー日: 2005/01/04
投稿数: 10
投稿日時: 2005-01-05 19:37
一例として…

import org.apache.commons.lang.StringUtils;
    :
    :
String[] a1 = {"1","2","3"};
String[] a2 = {"4","5","6"};
String[] a3 = {"7","8","9"};
String tmp = StringUtils.join(a1, ",")
+ "," + StringUtils.join(a2, ",")
+ "," + StringUtils.join(a3, ",");
String a[] = StringUtils.split(tmp, ",");

kito
ベテラン
会議室デビュー日: 2003/03/24
投稿数: 59
お住まい・勤務地: Osaka
投稿日時: 2005-01-05 20:53
いっそ配列を捨ててしまうとか。(要J2SE5)
コード:
		List<String> a1 = Arrays.asList("1", "2", "3");
		List<String> a2 = Arrays.asList("4", "5", "6");
		List<String> a3 = Arrays.asList("7", "8", "9");
		
		ArrayList<String> list = new ArrayList<String>();
		list.addAll(a1);
		list.addAll(a2);
		list.addAll(a3);
		
		System.out.println(list);



・・・でもOdakazさんの案とほとんど違いませんでしたね。
コード:
		String[] a1 = {"1", "2", "3"};
		ArrayList<String> list = new ArrayList<String>();
		list.addAll(Arrays.asList(a1));
		String[] array = list.toArray(new String[list.size()]);


未記入
常連さん
会議室デビュー日: 2004/08/03
投稿数: 21
投稿日時: 2005-01-05 21:44
皆さんありがとうございます。

StringUtilsやArraysと言うのがあるんですね。
わかりやすい解説でとてもためになりました。
1

スキルアップ/キャリアアップ(JOB@IT)