我正在尝试在使用以下代码时添加ArrayList一个JList正在工作的项目:
private void UpdateJList(){
DefaultListModel<String> model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我声明DefaultListModel方法的外部,添加增加每个项目,IE而不是添加每个项目之一,它添加多个项目.我只是想知道为什么会这样?
我试图使用ArrayList来存储可变数量的字符串,并想知道如何保存ArrayList及其元素,以便我的窗体可以在程序加载和退出之间调用它们的值.
我曾经将信息存储在文本文件中,但如果可能的话,我希望避免使用外部文件.
感谢您提供的任何帮助.
我被分配制作一个程序,在0-25之间获得100个随机整数并将它们存储在一个数组中.然后,我必须要求两种方法来分割平均值和赔率(非常典型).所以我尝试了ArrayList的东西(我开始学习它),看起来很好(我在线跟踪教程和事情),直到遇到这个: Unit8.java使用未经检查或不安全的操作
我的代码是这样的:
import java.util.*;
import java.awt.*;
public class Unit8
{
public static void main (String [] args)
{
//create an array for original 100 integers
//create a 2D array for evens and odds
//split them up using 2 methods
int[] originalArray = new int[100];
ArrayList even = new ArrayList(1);
ArrayList odd = new ArrayList(1);
for (int x = 0; x < originalArray.length; x++)
{
originalArray[x] = (int)(Math.random() * 25);
}
evensDivider(originalArray, even);
oddsDivider(originalArray, odd);
}
public static void evensDivider …Run Code Online (Sandbox Code Playgroud) 有可能创造
ArrayList<Object type car,Object type bus> list = new ArrayList<Object type car,Object type bus>();
我的意思是将不同类的对象添加到一个arraylist?
谢谢.
大家.
我刚刚进入Java,我正在尝试编写一个简单的游戏,敌人在网格上追逐玩家.我在寻路上使用维基百科页面中的简单算法进行寻路.这涉及创建两个列表,每个列表项包含3个整数.这是我正在尝试构建和显示这样一个列表的测试代码.
当我运行以下代码时,它会为ArrayList中的每个数组打印出相同的数字.为什么这样做?
public class ListTest {
public static void main(String[] args) {
ArrayList<Integer[]> list = new ArrayList<Integer[]>();
Integer[] point = new Integer[3];
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 3; j++) {
point[j] = (int)(Math.random() * 10);
}
//Doesn't this line add filled Integer[] point to the
//end of ArrayList list?
list.add(point);
//Added this line to confirm that Integer[] point is actually
//being filled with 3 random ints.
System.out.println(point[0] …Run Code Online (Sandbox Code Playgroud) 我需要知道如何替换一个对象ArrayList<Animal>.
我有一个名为的数组列表ArrayList<Animal>.此列表仅列出了初始的5只动物.
Animal animal = new Animal();
animal.setName("Lion");
animal.setId(1);
ArrayList<Animal> a = new ArrayList<Animal>();
a.put(animal); // likewise i will be adding 5-6 animals here.
Run Code Online (Sandbox Code Playgroud)
稍后,我将从此数组列表中获取一个对象并进行修改.
Animal modifiedAnimal = new Animal();
animal.setName("Brown Lion");
animal.setId(1);
Run Code Online (Sandbox Code Playgroud)
现在我需要将此Animal对象添加到ArrayList<Animal> a 数组列表中.我需要它来替换Animal我们命名的前一个对象Lion.我怎样才能做到这一点 ?
注意:我不知道添加此对象的索引.
将项添加到ArrayList时,如果ArrayList未初始化为字段,则会收到NullPointerException.有谁能解释为什么?
我将ArrayList初始化为字段时工作:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList = new ArrayList<Item>();
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
}
public void add(Item i) {
itemsInGroceryList.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
当我将ArrayList声明为字段然后在类构造函数中初始化它时,不工作:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList;
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
ArrayList<Item> …Run Code Online (Sandbox Code Playgroud) 我想分割下面的字符串并将其存储到HashMap中.
String responseString = "name~peter-add~mumbai-md~v-refNo~";
Run Code Online (Sandbox Code Playgroud)
首先,我使用分隔符连字符( - )拆分字符串并将其存储到ArrayList中,如下所示:
public static List<String> getTokenizeString(String delimitedString, char separator) {
final Splitter splitter = Splitter.on(separator).trimResults();
final Iterable<String> tokens = splitter.split(delimitedString);
final List<String> tokenList = new ArrayList<String>();
for(String token: tokens){
tokenList.add(token);
}
return tokenList;
}
List<String> list = MyClass.getTokenizeString(responseString, "-");
Run Code Online (Sandbox Code Playgroud)
然后使用下面的代码将其转换为使用流的HashMap.
HashMap<String, String> = list.stream()
.collect(Collectors.toMap(k ->k.split("~")[0], v -> v.split("~")[1]));
Run Code Online (Sandbox Code Playgroud)
流收集器不起作用,因为没有refNo的值.
如果我在ArrayList中有偶数个元素,它可以正常工作.
有办法处理这个吗?还建议我如何使用流来执行这两个任务(我不想使用getTokenizeString()方法)使用流java 8.
我想从Firebase Firestore数据库中获取数据.我有一个名为user的集合,每个用户都有一些相同类型的对象(My Java自定义对象)的集合.我想在创建Activity时用这些对象填充我的ArrayList.
private static ArrayList<Type> mArrayList = new ArrayList<>();;
Run Code Online (Sandbox Code Playgroud)
在onCreate()中:
getListItems();
Log.d(TAG, "onCreate: LIST IN ONCREATE = " + mArrayList);
*// it logs empty list here
Run Code Online (Sandbox Code Playgroud)
调用获取项目列表的方法:
private void getListItems() {
mFirebaseFirestore.collection("some collection").get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
if (documentSnapshots.isEmpty()) {
Log.d(TAG, "onSuccess: LIST EMPTY");
return;
} else {
for (DocumentSnapshot documentSnapshot : documentSnapshots) {
if (documentSnapshot.exists()) {
Log.d(TAG, "onSuccess: DOCUMENT" + documentSnapshot.getId() + " ; " + documentSnapshot.getData());
DocumentReference documentReference1 = FirebaseFirestore.getInstance().document("some path");
documentReference1.get().addOnSuccessListener(new …Run Code Online (Sandbox Code Playgroud) 所以,我有一个自定义类和该类类型的数组列表。现在,我想仅使用构成该类对象的其他属性中可用的 ID 来检索此数组列表中的对象的索引。
在网上看到了一些例子,但我有点困惑,他们重写了 hashCode() 和 equals(),并且在 equals() 中他们检查所有属性,我只想检查 ID 值,因为对于每个对象 ID 都是唯一的。
public class MyClass {
private String ID;
private String name;
private String userName;
private String position;
// Constructors and getters and setters
}
Run Code Online (Sandbox Code Playgroud)
所以,我想要的是,比如说这段代码:
List<MyClass> list=new ArrayList<>();
//Values are populated into list
int i=list.indexOf(someObjectsID); //Where someObjectsID is a String and not a MyClass object
Run Code Online (Sandbox Code Playgroud)
int i 将在列表中拥有 ID 等于 someObjectsID 的 MyClass 对象的 indexOf