我编写了一个程序,用一个按钮按下用户输入的单词,然后将它们放入ArrayList中.还有另一个文本字段,用户可以在其中输入字母或单词,用户可以通过另一个按钮按下在ArrayList中搜索.我正在使用顺序搜索算法来完成此任务,但它不能像我期望的那样工作; 如果找到搜索到的单词,则应返回搜索功能,并在textArea中打印出找到该单词的位置以及找到该单词的位置.这有效,但仅适用于第一次搜索.如果找不到该单词,则该函数应打印出未找到该单词.这是我想要的.
问题是,在我搜索了一个单词后,它显示了ArrayList中可以找到的位置,当我按下按钮之后没有任何反应,无论输入的字母/单词是否在数组中.这就像文本存储的字符串没有变化.我不明白为什么......下面是Class搜索功能的自定义,然后是我的Main班级:
public class Search {
static private int i;
static String index;
static boolean found = false;
public static String sequencial (ArrayList<String> list, String user) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals(user)) {
index = "The word " + user + " exist on the place " + i + " in the Arraylist";
found = true;
}
}
if (!found) {
index = "The word " + …Run Code Online (Sandbox Code Playgroud) 我在java collection util中面临一些问题,基本上我通过打破这些步骤在arrayList上使用了removeall ()但它抛出java.lang.UnsupportedOperationException,当我在单行中执行它时,它按预期正常工作.所以当我分几个步骤打破它时,我不明白是什么问题.代码是
public class Test4 {
public static void main(String args[]){
String unInstall="com.mobikwik_new,com.cleanmaster.mguard,com.htc.flashlight,com.mobilemotion.dubsmash";
String install="com.mobikwik_new,com.cleanmaster.mguard,com.htc.flashlight";
List<String> installList = new ArrayList<String>();
List<String> unInstallList = new ArrayList<String>();
String inL[] = install.split(",");
String UnInL[] = unInstall.split(",");
installList = Arrays.asList(inL);
unInstallList = Arrays.asList(UnInL);
unInstallList.remove(installList);
//List<String> installList = new ArrayList<>(Arrays.asList(install.split(",")));
//List<String> unInstallList = new ArrayList<>(Arrays.asList(unInstall.split(",")));
unInstallList.removeAll(installList);
System.out.println("unInstall : "+unInstallList);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:当我只使用注释行而不是上述所有步骤时,它的工作正常
投掷的例外是 -
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(Unknown Source)
at java.util.AbstractList$Itr.remove(Unknown Source)
at java.util.AbstractCollection.removeAll(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试做类似的事情:
{"semaforo":"icbc"},{"semaforo":"pepito"}
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
for (Iterator it = semaforosMiddleware.iterator(); it.hasNext();) {
KeyMapMediciones semaforoMiddleware = (KeyMapMediciones) it.next();
jsonFamilias.append("{\"semaforo\":\"" + semaforoMiddleware.getAplicacion() + "\"}");
if (it.hasNext()) {
jsonFamilias.append(",");
}
}
Run Code Online (Sandbox Code Playgroud)
但我输出如下:
{"semaforo":"icbc"},{"semaforo":"pepito"},
Run Code Online (Sandbox Code Playgroud)
我不希望最后一个元素后面有最后一个逗号(",").我能做什么?
我目前正在编写一个打印图书列表的程序.书籍元素的每个ArrayList由一个字符串(一本书的标题)和一个ArrayList(该书的作者)组成.我需要对书籍的ArrayList进行排序,使它们按字母顺序排列(按标题排序).我的问题是,当我打印新的ArrayList(我称之为Collections.sort()的列表)时,我得到的输出与我第一次打印非排序版本时的输出相同.
我myLib.sort();从我的驱动程序调用,该程序在我的Library类中转到此方法:
public void sort()
{
Collections.sort(myBooks);
}
Run Code Online (Sandbox Code Playgroud)
myBooks是我之前提到的书籍的ArrayList.根据我的阅读,Collections.sort("ArrayList name")应按字母顺序排列我的列表.如果这是不正确的,我需要使用compareTo()和equals()方法,那么这些class Book是我用于构建进入我的书籍的那些方法class Library:
public int compareTo(final Book theOther)
{
int result = 0;
if (myTitle.equals(theOther.myTitle))
{
if (myAuthors.get(0) != theOther.myAuthors.get(0))
{
result = 1;
}
}
else
{
result = 0;
}
return result;
}
public boolean equals(final Object theOther)
{
if (theOther instanceof String)
{
String other = (String) theOther;
return myTitle == other;
}
else
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用Map<User, Integer>,我需要选择具有特定整数的用户并将它们添加到ArrayList,什么是让所有用户进入ArrayList<User>Integer = 1 的最简单方法?
这是我试过的,它的工作原理,但我会感谢更短的代码.
ArrayList<User> users = new ArrayList();
for (Map.Entry<User, Integer> entry : userAnswers.entrySet())
{
if(entry.getValue()==1) users.add(entry.getKey());
}
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢你Danil Gaponov,你的回答正是我想要的!
我正在尝试编写一个返回一个ArrayList<ArrayList<String>>包含较小ArrayLists的大型方法的方法,每个ArrayLists都有一个不同的起始ArrayList排列.
这是我的方法:
public static ArrayList<ArrayList<String>> permute(ArrayList<String> x) {
ArrayList<ArrayList<String>> res = new ArrayList<ArrayList<String>>();
while (res.size() < fac(x.size())) { //fac method works fine
Collections.shuffle(x);
if (!res.containsAll(x)) {
res.add(x);
}
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
我的方法是基本上重新调整原始的ArrayList,x,并检查它是否已经在结果ArrayList中,如果不是,那么我添加它.出于某种原因,当我尝试这个方法时,结果ArrayList包含相同的ArrayLists,即使我有一个if语句,这是特定的,所以不会发生.
我错过了什么?
所以我有3个类,一个运行所有代码.学生班,研究生班和本科班,以及运行代码的实验室4班.该代码询问有多少研究生和有多少本科学生,然后要求用户输入每个学生的所有信息.在输入所有信息之后,将under grad或grad student对象添加到学生的数组列表中.添加完所有学生后,打印所有信息.但是,当我输入所有信息时,阵列不打印,程序终止.如何让阵列打印出来?
码:
实验4:创建学生对象,数组列表,将它们添加到数组中,并打印添加到数组列表中的对象的所有信息
import java.util.ArrayList;
import java.util.Scanner;
public class Lab04 {
public static void main(String[] args) {
ArrayList <Student> studentList = new ArrayList <Student>();
Scanner s = new Scanner(System.in);
System.out.println("How many Graduate Students do you want to store?");
int numOfStudents = s.nextInt();
s.nextLine();
for (int i = 0; i < numOfStudents; i++) {
System.out.println("What is the student's name?");
String name = s.nextLine();
System.out.println("What is the student's GPA?");
double GPA = s.nextDouble();
s.nextLine();
System.out.println("What is the student's ID?");
String …Run Code Online (Sandbox Code Playgroud) 请任何人帮我解决我的这个代码.我正在开发一个需要动态创建文本字段的项目,虽然我能够创建文本字段但是我无法获得需要存储在数组中的用户输入.这是我使用的代码;
Public void actionPerformed(ActionEvent e){
String value = textField.getText();
int values = Integer.parseInt(value);
int sum = 10;
for(int I=0; I < values; I++){
TextField field = new TextField();
field.setBound(10,sum,107,22);
Panel.add(field);
sum += 28;
}
}
});
Run Code Online (Sandbox Code Playgroud)
但我无法编写任何成功的代码来获取textFields的值.
在arraylist日期升序中使用以下代码它工作正常.但我需要修改该代码以从arraylist获取开始日期和结束日期之间的数据.
我如何根据我的要求修改它?
升序订单代码(工作正常)
Collections.sort(adapter.modelValues, new Comparator<Actors>() {
@Override
public int compare(Actors lhs, Actors rhs) {
Date d1 = null, d2 = null;
try {
SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
String a = lhs.getlastaction();
String b = rhs.getlastaction();
d1 = f.parse(a);
d2 = f.parse(b);
} catch (Exception e) {
Toast.makeText(getActivity().getApplicationContext(), String.valueOf(e.getMessage()), Toast.LENGTH_LONG).show();
}
return d1.compareTo(d2);
}
});
Run Code Online (Sandbox Code Playgroud)
代码之间的日期(不工作)
Collections.sort(adapter.modelValues, new Comparator<Actors>() {
@Override
public int compare(Actors lhs, Actors rhs) {
Date d1 = null, d2 = null, d3 = null, …Run Code Online (Sandbox Code Playgroud) 我试图使用扫描仪从文件读入然后将这些附加到数组.但是当我这样做时,扫描仪似乎正在拾取空行并将这些空白行分配给数组中的索引.
我尝试了几种不同的工作方式无济于事,只是想知道是否有任何问题和新问题为什么会这样做?
该文件的格式如下:
F:\ DATA\SFW3 \文件夹
F:\ DATA\SFW3 \文件夹
F:\ DATA\SFW3 \文件夹
F:\ DATA\SFW3 \文件夹
任何想法都会受到欢迎.
public void scanFiles() throws NoSuchElementException {
Scanner sc = null;
System.out.println("Sage 2015 is Installed on this machine");
int i = 0;
try {
String line;
File companyFile = new File(sageFolders[8] + "\\COMPANY");
sc = new Scanner(new BufferedReader(new FileReader(companyFile)));
while(sc.hasNextLine()) {
line = sc.nextLine();
System.out.println(line);
System.out.println(i);
currentFolders.add(i,line);
System.out.println("At Index" + i + ": " + currentFolders.get(i));
i++;
}
sc.close();
}
catch(FileNotFoundException e) {
System.out.println("File not …Run Code Online (Sandbox Code Playgroud)