我有一个Arraylist字母,其中包含字母public void registerReceiver() {
if (BuildConfig.DEBUG) Log.e(TAG, "REGISTERING RECEIVER");
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
filter.addAction(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
mainActivity.registerReceiver(receiver, filter);
}
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BuildConfig.DEBUG) Log.e(TAG, "INTENT RECEIVED: " + String.valueOf(action));
if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// … some stuff …
} else if (BluetoothDevice.ACTION_FOUND.equals(action)) {
autoConnectDevice();
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
disconnectDevice();
}
}
};
public void unregisterReceiver() {
if (BuildConfig.DEBUG) Log.e(TAG, "UNREGISTERING RECEIVER");
mainActivity.unregisterReceiver(receiver);
}
f
r
t
,还有d
个更多的Arraylists,其中一个存储{{1}一个字母和另一个存储two
的一封信。
但是按字母顺序(row poistion
)对Arraylist字母进行排序后,我如何相应地对每个字母的行和col值进行排序?例如,如果字母col position
包含Collections.sort(letters)
和d
,那么在排序row = 4
之后,它将位于第一位并获取col ==3
和``col值d
。如果字母获得row
和f
值,我该怎么做?
假设:
row
段:
col
答案 0 :(得分:5)
答案不是对每个存储每个字符的一个元素的单个数组进行排序。
创建您自己的类,将3个关联的数据属性保存在一起,例如Letter
。
执行以下操作之一:
Comparable<Letter>
,添加compareTo
方法。然后有ArrayList
Letter
个Collections.sort
,您可以拨打Comparator<Letter>
。compare
方法创建另一个实现ArrayList
的类。使用Letter
Collections.sort
个Comparator
,请致电private void promptSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),
getString(R.string.speech_not_supported),
Toast.LENGTH_SHORT).show();
}
}
并传入另一个参数,该参数是letters
的一个实例。答案 1 :(得分:0)
使用任何合适的排序技术(冒泡,合并,快速等),手动排序。处理所有三个togather,当您按所需顺序获得-(void) updateTurnLabel {
self.playerLabel = [self.playerArray objectAtIndex:currentIndex+1];
}
时停止。
创建一个Map,key将是你的字母,value将是String(rowNum_colNum,或者使用它们之间的任何分隔符)并按键对该映射进行排序。稍后,打破该值并检索两个数字。