我有一个ArrayList,其中包含我想删除的一些项目.我有要删除的项目的ID存储在另一个列表中.认为以下代码应该是平常工作的,但由于某种原因,remove()调用返回一个false值:
ArrayList<Integer> toRemove = new ArrayList<Integer>();
ArrayList<JCheckBox> al = new ArrayList<JCheckBox>();
/* Code that adds a bunch of items to al, and a few integers to toRemove */
System.out.println("Size before removing: " + al.size());
for (int i = toRemove.size() - 1; i >= 0; i--) {
System.out.println("Removing id: " + toRemove.get(i) + ": ");
System.out.println(al.get(toRemove.get(i)));
System.out.println(al.remove(toRemove.get(i)));
}
System.out.println("Size after removing: " + al.size());
Run Code Online (Sandbox Code Playgroud)
如果get()调用也返回了false值,我会得到它,但它实际上会返回有问题的对象.我在这里错过了什么?
上面代码的输出:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
Run Code Online (Sandbox Code Playgroud) 可能重复:
在java集合中存储原始值?
我的Java教科书说集合的元素,例如ArrayList,不能是原始类型.是否有一个原因?我的意思是Sun的某个人是否决定了这一点,或者是否存在阻碍这样做的障碍?我理解我的例子半答案我的问题,因为ArrayList需要一个对象,而原语不是对象.但后来我想为什么它们也不能有原始类型呢?
我试图通过意图传递对象的ArrayList但无法让它工作.这是我有的:
public class QuestionView extends Activity {
//variables and other methods...
public void endQuiz() {
Intent intent = new Intent(QuestionView.this, Results.class);
intent.putExtra("correctAnswers", correctAnswers);
intent.putExtra("wrongAnswers", wrongAnswers);
intent.putParcelableArrayListExtra("queries", queries);
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
意在这里收到:
public class Results extends Activity {
int cAnswers;
int wAnswers;
ArrayList<Question> qs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.resultsmain);
cAnswers = getIntent().getIntExtra("correctAnswers", -1);
wAnswers = getIntent().getIntExtra("wrongAnswers", -1);
qs = getIntent().getParcelableArrayListExtra("queries");
//more code...
}
}
Run Code Online (Sandbox Code Playgroud)
正在接收两个整数,correctAnswer和wrongAnswers,我可以使用它们.ArrrayList没有通过.在endQuiz()方法中没有错误,但'qs = getIntent().getParcelableArrayListExtra("queries");' 抛出错误并说"绑定不匹配".
对此有任何帮助表示赞赏!
问题类:
public class Question {
String a1;
String a2; …Run Code Online (Sandbox Code Playgroud) List list = new ArrayList<String>() ;
list.add(1) ;
Integer hello = (Integer) list.get(0) ;
System.out.println(hello);
Run Code Online (Sandbox Code Playgroud)
上面的代码有一个类型为List的引用,引用了String类型的ArrayList实例.当执行该行时,是不是将1添加到ArrayList(String类型)?如果是,那么为什么允许这样做?list.add(1)
在kjellkod的文章中提到过,如果我们传入作为参数ArrayList接收的方法List,那么我们会失去性能,因为ArrayList实现了额外的RandomAccess接口.文章示例:
// SLOWER: as shown in http://ideone.com/1wnF1
private static void linearInsertion(Integer[] intArray, List<Integer> list) {
[...]
int list_size = list.size();
for (int i = 0; i < list_size; i++) {
if (integer.compareTo(list.get(i)) >= 0) { // ... more code
// FASTER: as shown in http://ideone.com/JOJ05
private static void linearInsertion(Integer[] intArray, ArrayList<Integer> list) {
[...]
int list_size = list.size();
for (int i = 0; i < list_size; i++) {
if (integer.compareTo(list.get(i)) >= 0) …Run Code Online (Sandbox Code Playgroud) 我想添加一个对象ArrayList,但每次我添加一个新对象到ArrayList3个属性:objt(name, address, contact)我得到一个错误.
import java.util.ArrayList;
import java.util.Scanner;
public class mainClass {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("Plz enter Name : ");
String name = input.nextLine();
System.out.println("Plz enter Address : ");
String address = input.nextLine();
System.out.println("Plz enter ContactNo : ");
String contact = input.nextLine();
ArrayList<Data> Contacts = new ArrayList<Data>();
Data objt = new Data();
Contacts.add(objt.Data(name, address, contact));
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,Data我正在尝试创建一个对象并将其传递给一个类ArrayList.
public class Data {
private String …Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,通过json从服务器中提取多个long,然后将该列表从一个活动传递到另一个活动.基本骨架如下所示:
public void onResponse(Map result)
{
ArrayList handles= (ArrayList)result.get("fileHandles");
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("handles", handles);
}
Run Code Online (Sandbox Code Playgroud)
所以,第一个问题变得很明显,对于putExtra的唯一方法是putIntegerArrayListExtra,putStringArrayListExtra,putCharSequenceArrayListExtra,和putParcelableArrayListExtra.Thinking Long可能是可以分配的,我错了它不起作用(即使我使用ArrayList<Long>).接下来我以为我只是通过了一个很长的[],但是我认为没有直接的转换可以接受ArrayList<Long>long [] intent.putExtra.这是我最终得到的解决方案:
ArrayList handles= (ArrayList)result.get("fileHandles");
long [] handleArray = new long[handles.size()];
for (int i = 0; i < handles.size(); i++)
{
handleArray[i] = Long.parseLong(handles.get(i).toString());
}
Run Code Online (Sandbox Code Playgroud)
显然这对我来说似乎有点荒谬,但我尝试的其他所有转换似乎都因某种原因而抱怨.在考虑到这一点之前,我已经考虑重新思考我的序列化以解决问题,但我发现ArrayList<Long>从活动到活动的过程可能非常困难.有没有更明显的解决方案我错过了?
我需要解析一个如下所示的json文件:
[
{
"y": 148,
"x": 155
},
{
"y": 135,
"x": 148
},
{
"y": 148,
"x": 154
}
]
Run Code Online (Sandbox Code Playgroud)
我想将这些X坐标和Y坐标放入JavaObject Click中,该类如下所示:
public class Click {
int x;
int y;
public Click(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
Run Code Online (Sandbox Code Playgroud)
我看过gson,因为他们说它很容易退出,但我不知道如何从我的档案中做到这一点.
嗨,我有我需要转换的要求List的Long数据类型,以逗号分隔String.这将是适当的方式.我已经考虑过使用字符串构建器或将其转换为List<String>然后使用StringUtilsjoin来获取String.
我正在寻找java 7解决方案,不使用guava或java 8.
我试图检查一个字符串是否包含字母表中的所有字母.我创建了一个ArrayList包含整个字母表的内容.我将字符串转换为char数组,并且我正在遍历字符数组,并且对于ArrayList我正在从中移除元素的每个字符.最后,我正在尝试检查是否Arraylist为空以查看是否已删除所有元素.这表明字符串包含字母表中的所有字母.
不幸的是,代码IndexOutOfBoundsException在if条件中抛出错误,我将从arraylist中删除元素
List<Character> alphabets = new ArrayList<Character>();
alphabets.add('a');
alphabets.add('b');
alphabets.add('c');
alphabets.add('d');
alphabets.add('e');
alphabets.add('f');
alphabets.add('g');
alphabets.add('h');
alphabets.add('i');
alphabets.add('j');
alphabets.add('k');
alphabets.add('l');
alphabets.add('m');
alphabets.add('n');
alphabets.add('o');
alphabets.add('p');
alphabets.add('q');
alphabets.add('r');
alphabets.add('s');
alphabets.add('t');
alphabets.add('u');
alphabets.add('v');
alphabets.add('w');
alphabets.add('x');
alphabets.add('y');
alphabets.add('z');
// This is the string- I've just put a random example
String str = "a dog is running crazily on the ground who doesn't care about the world";
//Remove all the spaces
str = str.replace(" ", "");
// Convert …Run Code Online (Sandbox Code Playgroud)