我有两个ArrayLists
ArrayList<Integer> values = new ArrayList<Integer>();
values.add(9);
Run Code Online (Sandbox Code Playgroud)
那是一个,这是另一个:
ArrayList<Integer> values2 = new ArrayList<Integer>();
for(int j = 1; j < 10; j++){
values2.add(j);
}
Run Code Online (Sandbox Code Playgroud)
如何比较两者并从第二个ArrayList中删除9?我尝试使用foreach语句,但我一直在努力
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9, Size: 1
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这已经是几个小时了,我很感激您提供的任何帮助
Coldfusion 8版本在这里.这是我的代码片段:
<cfset ColumnNames = structKeyArray(ApiData[1])>
<cfdump var="#ColumnNames#"><!--- lowercase names --->
<cfdump var="#ArrayToList(ColumnNames,",")#"> <!--- need each name in Array in UPPERCASE --->
Run Code Online (Sandbox Code Playgroud)
uCase(ColumnNames)不会工作.我是否必须遍历每个项目并使用uCase?
谢谢
在ArrayList中,它使用grow方法基本上增长到一个新的大小:
private void grow(int minCapacity) {
...
...
elementData = Arrays.copyOf(elementData, newCapacity);
}
Run Code Online (Sandbox Code Playgroud)
在HashMap中,它说它将内容重新组合到一个新数组:
Entry[] newTable = new Entry[newCapacity];
...
transfer(...)
Run Code Online (Sandbox Code Playgroud)
在arraylist,Arrays.copyOf电话System.arraycopy.在HashMap中,它使用while循环将所有元素传输到新数组.这两个集合之间是否存在任何特殊差异,因为它们最终都会创建一个新数组?
我正在写一个有...的程序ArrayList<String> s.有没有办法从中获取每个值ArrayList并将它们设置为单独的变量?例如:
String s0 = s.get(0);
String s1 = s.get(1);
String s2 = s.get(2);
.
.
.
String sn = s.get(n);
Run Code Online (Sandbox Code Playgroud)
我会知道'n'是什么,但它会根据用户输入而改变.我只是不知道如何/如果我可以根据某些数字n动态创建变量.任何帮助将非常感激!
我在一个TreeMap中存储了一个arrayList作为我的键,但是我得到了这个异常
java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.Comparable
我将数组的内容复制到ArrayList并尝试将该arrayList存储为Map My Code中的我的键:
TreeMap< ArrayList<Integer> , Integer > bandsMap = new TreeMap< ArrayList<Integer> , Integer >();
ArrayList< Integer > erfcn = new ArrayList< Integer >();
for (int index = 0; index < frequencies.length; index++)
erfcn.add(frequencies[index]);
bandsMap.put( erfcn , band_number);
for (Integer value : bandsMap.values()) {
System.out.println("Value = " + value + "\n");
}
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?谢谢
当我第一次运行这段代码时它工作得很好,但在用几个不同的测试值测试后,我开始得到nullPointerException,现在无论我给出什么值,它都不起作用.我在网上浏览了一下,如果我正确理解了JavaDoc,当你尝试在一个尚未初始化的变量上调用方法时,你会得到一个NullPointerException.这意味着BestCustomer对象没有被初始化但我无法弄清楚为什么这是因为它在我调用getWho方法之前在for循环中初始化并且如果arrayList中没有对象(意味着什么都没有被初始化 - 或者至少我认为它确实如此)我不称之为方法.为什么我得到nullPoiterException?
package hwk4;
import java.util.ArrayList;
public class Store {
ArrayList<Customer> database = new ArrayList<Customer>();
Customer person, bestCustomer;
int totalSales;
public void addSale(String customerName, double amount) {
Customer sale = new Customer(customerName, amount);
database.add(sale);
}
public String nameOfBestCustomer() {
if (database.isEmpty()) {
return "You have made 0 sales today.";
} else {
double largest = database.get(0).getAmt();
for (int count = 1; count < database.size(); count++) {
if (database.get(count).getAmt() > largest) {
largest = database.get(count).getAmt();
bestCustomer = database.get(count);
}
// …Run Code Online (Sandbox Code Playgroud) 我按降序排序了我的arraylist,现在我要打印最大值.arraylist包含学生的姓名和成绩.我想打印成绩最高的学生的名字.我不需要打印他们的成绩.只是这个名字.这是我的代码
public void printStudent(){
Collections.sort(studentList);
Collections.reverse(studentList);
System.out.println("Best student is: ");
for (Student s: studentList){
System.out.println(s.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
现在这打印了整个学生名单和他们的成绩但是我只想打印最高等级的学生的名字,我尝试了很多东西,但似乎无法让它工作.谢谢!
当我尝试为MyArrayList(java中的arraylist类的个人版本)编写构造函数时,我很困惑为什么我一直得到java.lang.StackOverFlow错误.我知道存在递归调用时会发生StackOverFlow错误,但对于我编写的代码,情况似乎并非如此?任何人都可以帮忙解释为什么我收到这个错误?
这是我的代码,我已经包含了我编写的所有构造函数,但第一个MyArrayList()是错误在编译器中指示的那个.
public class MyArrayList<T> {
private int capacity;
private int size;
private T[] data;
**private MyArrayList<T> test;**
private T[] createArrayOfSize(int size)
{
T[] newArray = (T[]) new Object[size];
return newArray;
}
**public MyArrayList() {
this.test = new MyArrayList();
}**
public MyArrayList (int initialCapacity) {
test.data = createArrayOfSize(initialCapacity);
}
public MyArrayList(List<T> items) {
for (int i = 0; i < items.size(); i++) {
test.data[i] = items.get(i);
}
}
Run Code Online (Sandbox Code Playgroud)
抱歉略显蹩脚的格式.
当对象扩展我在ArrayList泛型中编写的类型时,如何才能访问ArrayList中对象的字段?
下面是代码:
ArrayList<ObjectA> objA = new ArrayList()<>;
objA.add( new ObjectA() );
objA.add( new ObjectAB() ); // ObjectAB extends ObjectA
Run Code Online (Sandbox Code Playgroud)
现在我想更改存储在列表中的变量ObjectAB
(只有ObjectAB有此字段,而不是ObjectA)
public void fillWith(TileEntity tile){
for(int i = 0; i < this.height; i++){//for every x and y value
for(int j = 0; j < this.width; j++){
tile.x = j;
tile.y = i;
this.tiles.add(tile);
}
}
}
Run Code Online (Sandbox Code Playgroud)
好的,所以上面的代码应该用TileEntity tile填充关卡.当我在"this.tiles.add(tile)"行之前打印x和y coords时,每个tile都有不同的coords.但是当我打印出ArrayList"tiles"中所有tile的x和y坐标时,每一个都是(9,9).它们都与添加到arraylist的最后一个tile相同.谢谢!
arraylist ×10
java ×9
coldfusion ×1
constructor ×1
generics ×1
hashmap ×1
map ×1
max ×1
treemap ×1