说我有一个属性的汽车类make和registration,我创建一个ArrayList来存储它们.如何显示ArrayList中的所有元素?
我现在有这个代码:
public Car getAll()
{
for(int i = 0; i < cars.size(); i++) //cars name of arraylist
{
Car car = cars.get(i);
{
return cars.get (i);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
它编译得很好但是当我在我的测试器类中使用以下代码进行尝试时:
private static void getAll(Car c1)
{
ArrayList <Car> cars = c1.getAll(); // error incompatible type
for(Car item : cars)
{
System.out.println(item.getMake()
+ " "
+ item.getReg()
);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到了不兼容类型的错误.我的编码是否正确?如果没有,有人可以告诉我它应该如何?
谢谢
php除了之外是否有任何数据结构array.是否可以创建一个数据结构,如ArrayList?如果是这样,请提供一些参考或某种实施方式.
我遇到的问题应该是一个非常简单的问题.
我需要将arrayList中的每个项目与列表中的其他项目进行比较,而不将项目与自身进行比较.它并不像调用equals()那样简单,它涉及一些我从下面的代码中省略的自定义逻辑.此外,不应以任何方式更改ArrayList.
我似乎遇到的问题是,一旦我进入第二个循环,我不知道我是否有另一个要比较的对象(因为它是一个可变大小的列表).
for(int i =0; i< list.size(); i++){
//get first object to compare to
String a = list.get(i).getA();
Iterator itr = list.listIterator(i + 1 ); // I don't know if i + 1 is valid
while(itr.hasNext()){
// compare A to all remaining items on list
}
}
Run Code Online (Sandbox Code Playgroud)
我想我可能会以错误的方式解决这个问题,我愿意接受有关如何做得更好的建议或提示.
如何静态初始化多维列表?
这有效:
List<List<Integer>> list = new ArrayList<List<Integer>>();
Run Code Online (Sandbox Code Playgroud)
但我想用一些静态列表初始化列表,如:(1,2,3),(4,5,6)和(7,8,9)
我是Java新手.我想知道之间的区别:
List< String > list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
和
ArrayList< String > list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
和
ArrayList< String > list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
谢谢
我在我的Android应用程序中有以下代码:
/**
* callback executed after fetching the data.
*/
public void OnPointsFetch(ArrayList<Shop> result) {
toggleLoader(false);
this.shops = result;
if(activeFilter == Constants.POINTS_FILTER_AVAILABLE){
for(Shop s : result){
if(s.getClientPoints().getPointsAvailable() == 0){
this.shops.remove(s);
}
}
}
else{
for(Shop s : result){
if(s.getClientPoints().getPointsSpent() == 0){
this.shops.remove(s);
}
}
}
ptsListAdapter.setCollection(this.shops);
ptsListAdapter.setFilter(this.activeFilter);
}
Run Code Online (Sandbox Code Playgroud)
在异步任务的结果上调用此方法.我需要在传递给列表适配器之前删除集合的一些元素.
11-23 17:39:59.760: E/AndroidRuntime(19777): java.util.ConcurrentModificationException
11-23 17:39:59.760: E/AndroidRuntime(19777): at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:569)
Run Code Online (Sandbox Code Playgroud) 我有一个接口IA和类B和C来实现它们.B和C都可以实现Parcelable.
然后我有一个棘手的部分:
D级有一个ArrayList< IA >.我也需要在插入B和C类arraylist.它们具有相同的结构,但"IS-A"关系不适用.
我需要将D从一个活动传递到另一个活动作为包裹.
我试着写(ArrayList<IA>) in.readSerializable但我得到了IOException.我知道如果IA不是一个接口问题很容易,但我似乎无法找到一个简单的解决方案.
有任何想法吗?
@SuppressWarnings("unchecked")
public D (Parcel in) {
list = new ArrayList<IA>();
(...)
list = (ArrayList<IA>) in.readSerializable
}
@SuppressWarnings("rawtypes")
public static final Parcelable.Creator CREATOR =
new Parcelable.Creator() {
public D createFromParcel(Parcel in) {
return new D(in);
}
public D[] newArray(int size) {
return new D[size];
}
};
public int describeContents() {
return 0;
} …Run Code Online (Sandbox Code Playgroud) ArrayList在内部使用Object数组:
private transient Object[] elementData;
Run Code Online (Sandbox Code Playgroud)
并且在E get(int)方法中它被转换为E类型.
我的问题是:为什么ArrayList不使用E []来存储对象?
我知道在编译器运行之后,类型擦除会将E []转换为Object [],但是仍然需要在每个get()调用中转换为E?
如果使用E [],则无需使用以下代码
return (E) elementData[index];
Run Code Online (Sandbox Code Playgroud)
使用Object []的选择是为了表现?
当类型擦除将E []转换为Object []时,java会在内部进行强制转换以在泛型方法中返回正确的类型吗?
EDITED
让我更好地解释一下我的疑点是什么:
如果ArrayList使用E []而不是Object [],则在方法get(int)中不需要强制转换.这将提高性能(显然).
但是,没有魔法,我认为使用E [] JVM无论如何都会抛出对象,因为类型擦除会在Object中转换.正确?
ps:抱歉我的英语不好.
我有我的Java方法如下;
public List<Lookup> findAll(String lang) {
Query query = entityManager.createNamedQuery("Lookup.findAll");
if (isValidLang(lang)) {
query.setParameter("lang", lang);
return query.getResultList();
} else {
//return empty list
}
}
Run Code Online (Sandbox Code Playgroud)
现在该方法返回List以获得有效的lang匹配.
但如果不是这样,我想返回一个空列表.我的问题是如何更新代码以及返回空列表的最佳方法是什么,以便代码不会失败?
我有2个String阵列
String[] question1 = {"Q1","Q2","Q3","Q4"};
String[] question2 = {"Q5","Q6","Q7","Q8"};
Run Code Online (Sandbox Code Playgroud)
一个 ArrayList
ArrayList<String> aList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
如果我想访问其成员,我该如何操纵它们ArrayList.我尝试将两个数组转换为String,但它没有给出解决方案.