java - 如何让我的循环在 java GUI 中只打印一个值?
问题描述
所以我在这里有一个 for 循环:
String[] arr = new String[15];
answer = Integer.parseInt(keyTxt.getText());
key = answer % 15;
value = valueTxt.getText();
for(x = 0; x < arr.length; x++){
if(arr[key] != null){
arr[key+1] = value;
listModel.addElement(x + " : " + arr[x]);
}
else if(arr[key] == null){
arr[key] = value;
listModel.addElement(x + " : " + arr[x]);
}
}
这是我在键中输入 118 并在值中输入 Love 时打印的输出
0 : null
1 : null
2 : null
3 : null
4 : null
5 : null
6 : null
7 : null
8 : null
9 : null
10 : null
11 : null
12 : null
13 : Love
14 : Love
这是我的愿望输出13 : Love
当我再次进入118 in key和new love in values
0 : null
1 : null
2 : null
3 : null
4 : null
5 : null
6 : null
7 : null
8 : null
9 : null
10 : null
11 : null
12 : null
13 : Love
14 : New Love
这是我想要的输出:
13 : Love
14 : New Love
请有人帮助我,我被困了2天。谢谢 :)
编辑:这是散列,我们不允许使用,HashTable
并且HashMap
只允许使用一个数组。
这是我到目前为止所做的
for(int x = 0; x < arr.length; x++){
if(arr[key] != null){
key++;
}
else if(arr[key] == null){
key = key;
}
listModel.addElement(key + " : " + (arr[key] = value));
}
**注意:** 这不是在终端中,而是在 Java Gui 中
解决方案
您需要分离用于查找非空点并在 listModel 中添加条目的逻辑。
找到位置后,使用break;
语句退出循环:
//put key in non empty spot
for (; key < arr.length; key++) {
if (arr[key] == null) {
arr[key] = value;
break;
}
}
//add entries to display
for (int i = 0; i < arr.length; i++) {
listModel.add(i + " : " + arr[i] );
}
演示代码:
public class Test {
public static List<String> listModel = new ArrayList<>();
public static void main(String[] args) throws Exception {
String[] arr = new String[15];
int answer = 118;
put(arr, answer, "Love");
//print
listModel.stream().forEach(System.out::println);
System.out.println("\n Adding again -----------\n");
put(arr, answer, "Love");
//print
listModel.stream().forEach(System.out::println);
}
static void put(String[] arr, int key, String value) {
key = key % 15;
while (key < arr.length) {
if (arr[key] == null) {
arr[key] = value;
break;
} else {
key++;
}
}
for (int i = 0; i < arr.length; i++) {
listModel.add(i + " : " + arr[i] );
}
}
}
注意:我在演示中使用 ArrayList 而不是可视组件。
推荐阅读
- c++ - 定义未初始化的引用 C++
- python - 无法将 DataFrame 列表保存到多表 Excel 电子表格
- python - 使用 Beautiful Soup 提取 HTML 表格数据
- node.js - Node PassportJS 并不总是进行身份验证
- arrays - Matlab:使用矩阵的滑动窗口
- python-3.x - 无法在 Google Classroom API 中使用方法 courses.courseWork.studentSubmissions.return()
- javascript - 在 Firebase 的实时数据库中,以下关于从“路径”中删除所有侦听器是否正确?
- spring-boot - 无法在 org.hibernate.mapping.Column.getSqlTypeCode(Column.java:198) 处构建 Hibernate SessionFactory,NullPointerException
- prolog - 检查一个数字是否在两个值之间
- android-automotive - 专辑封面现在显示在 Automotive OS 的媒体应用程序上