回答編集履歴

4

Java6以前の書き方に修正

2017/09/02 09:02

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  // あらかじめ500個分のサイズ確保
24
24
 
25
- List<float[]> points = new ArrayList<>(500);
25
+ List<float[]> points = new ArrayList<float[]>(500);
26
26
 
27
27
 
28
28
 

3

コメント付加

2017/09/02 09:02

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -18,7 +18,13 @@
18
18
 
19
19
  ```java
20
20
 
21
+ // 最初に500入れるのが確定のようだったので、サイズ拡張のオーバーヘッドを防ぐために
22
+
23
+ // あらかじめ500個分のサイズ確保
24
+
21
25
  List<float[]> points = new ArrayList<>(500);
26
+
27
+
22
28
 
23
29
  while(points.size() < 500){
24
30
 
@@ -42,6 +48,8 @@
42
48
 
43
49
  }
44
50
 
51
+ // 配列化するときはこんな感じ
52
+
45
53
  float[][] array = points.toArray(new float[points.size()][]);
46
54
 
47
55
  ```

2

要素が固定長配列なら

2017/09/01 15:17

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,13 +1,47 @@
1
1
  ```java
2
2
 
3
- List<List<Float>> list = new ArrayList<>(500);
3
+ List<List<Float>> points = new ArrayList<>(500);
4
4
 
5
5
  for (int i = 0; i = 500; i++) {
6
6
 
7
- list.add(new ArrayList<>(Arrays.asList(0.0f, 0.0f)));
7
+ points.add(new ArrayList<>(Arrays.asList(0.0f, 0.0f)));
8
8
 
9
9
  }
10
10
 
11
11
  ```
12
12
 
13
13
  とりあえず作るだけならこんな感じ…
14
+
15
+
16
+
17
+ 可変長配列に入れるものがx,y座標で配列の長さ2で固定ならこれでいい
18
+
19
+ ```java
20
+
21
+ List<float[]> points = new ArrayList<>(500);
22
+
23
+ while(points.size() < 500){
24
+
25
+ // 正直ここの記法が謎だが…
26
+
27
+ int x = int(random(width));
28
+
29
+ int y = int(random(height));
30
+
31
+ color col = img.get(x, y); //色を取得
32
+
33
+
34
+
35
+ //[0]=x,[1]=y
36
+
37
+ if(brightness(col) > 100){
38
+
39
+ points.add(new float[]{x, y});
40
+
41
+ }
42
+
43
+ }
44
+
45
+ float[][] array = points.toArray(new float[points.size()][]);
46
+
47
+ ```

1

変更可能なように変更

2017/09/01 15:08

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,10 +1,10 @@
1
1
  ```java
2
2
 
3
- List<List<Float>> list = new ArrayList<>();
3
+ List<List<Float>> list = new ArrayList<>(500);
4
4
 
5
5
  for (int i = 0; i = 500; i++) {
6
6
 
7
- list.add(Arrays.asList(0.0f, 0.0f));
7
+ list.add(new ArrayList<>(Arrays.asList(0.0f, 0.0f)));
8
8
 
9
9
  }
10
10