列表数组 - 将Liist数组的每个值旋转n,并按原样保留第一个和最后一个值

时间:2015-10-03 18:24:59

标签: java list arraylist collections

我需要保留TEMP的第一个和最后一个值,因为它在TEMP2中,所有其他值都旋转4。 EX- TEMP的B(指数= 1)>>>>> TEMP2的B(指数= 5)

List<String> TEMP = new ArrayList<String>();

我有,在TEMP中列出数组值 - [A, B,C,D,E,F,G,H,I,J,K,L,M,N ,O]

需要具有值的新列表数组TEMP2 - [A, D,G,J,M,B,E,H,K,N,C,F,I,L ,O] < / p>

for (int g=0; g<=TEMP.size(); g++){


}

评论澄清:

数据来自Excel,例如:

A  B  C
D  E  F
G  H  I
J  K  L
M  N  O

通过“按行”读取这些值来构建列表 OP希望值“按列”,即重新排列,好像值已经读取而不是向右移动。

2 个答案:

答案 0 :(得分:0)

正如评论中所指出的,这不是轮换。你正在做的是将索引乘以一个常数并取其余的模数14.旋转是指你添加一个模数列表大小的常量。我不知道你为什么需要这个,但这是一个解决方案。

List<String> strings = Arrays.asList(
        "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O"
);
List<String> strings2 = new ArrayList<>();
for (int i = 0; i < 14; i++)            
    strings2.add(strings.get((i * 3) % 14));
strings2.add(strings.get(14));
System.out.println(strings2);

答案 1 :(得分:0)

[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]
[A, D, G, J, M, B, E, H, K, N, C, F, I, L, O]

输出

ssh docker@$(docker-machine ip default) -L 27017:localhost:27017