【发布时间】:2014-10-03 19:50:09
【问题描述】:
您好,我创建了使用 HashSet 数组的代码。我是 Java 编程的新手,我想知道如何完成这两个任务:
*通过索引从HashSet数组中获取一项 *显示列表中每一项的平均长度
我的代码并不长,所以我将整个代码粘贴在这里。感谢您的所有帮助。
public class MainActivity extends Activity {
Button aButton; // Global Scope
Button sButton;
TextView text2;
EditText eText;
HashSet<String> list = new HashSet<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_layout);
aButton = (Button) this.findViewById(R.id.button1);
text2 = (TextView) this.findViewById(R.id.textView1);
//Clickable Saved Input will display alert
text2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Complete!", Toast.LENGTH_LONG).show();
}
});
aButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
list.add("Books");
list.add("Newspapers");
list.add("Magazines");
String listString = "";
for (String s : list) {
listString += s + " - ";
}
text2.setText(listString);
}
});
sButton = (Button) this.findViewById(R.id.button2);
eText = (EditText) this.findViewById(R.id.editText1);
sButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Log.v("EditText", eText.getText().toString());
if( !list.add(eText.getText().toString()) )
{
System.out.println("Not Unique Item");
Toast.makeText(getApplicationContext(), "Already Saved!", Toast.LENGTH_LONG).show();
} else
{
System.out.println("Unique Entry Added");
Toast.makeText(getApplicationContext(), "Saved To Items.", Toast.LENGTH_LONG).show();
}
}
});
}
}
【问题讨论】:
-
顾名思义,
HashSet是Set(包含不同(wrt.equals)元素无特定顺序的集合)。如果您想按特定顺序存储元素并按索引检索它们,除了HashSet之外,您还必须维护List(例如ArrayList)。 -
请使用stringbuilder。