我正在研究一个项目,我坚持这个方法public DynArray(boolean allowNulls).
我想知道是否有人可以帮我这个方法.我要做的是创建一个DynArray对象,该对象可以允许或禁止其元素为空值,具体取决于为allowNulls参数提供的值.
到目前为止我有
public class DynArray<T> {
private static final int INITIAL_CAPACITY = 10;
private T[] theData;
private int size = 0;
private int capacity = 0;
public DynArray( boolean allowNulls ) {
capacity = INITIAL_CAPACITY;
if( allowNulls == true){
// ???
}
else {
// ???
}
}
public DynArray() {
capacity = INITIAL_CAPACITY;
theData = (T[]) new Object[capacity];
}
Run Code Online (Sandbox Code Playgroud)
有人可以指出我哪里出错了吗?
我有一个披萨代码,它遍历一个对象列表并检查它们是否发生碰撞.如果一个与之相撞,则将其从ArrayList中删除.
for (int i = 0; i < arrayList.size(); i++) {
Object c = arrayList.get(i);
if (Rect.intersects(foo.getRect(), c.getRect())) { //Android function, checks if the two rectangles are inside each other.
foo.setPosY(c.getPosY() + 11); // Always works.
foo.setVelY(bird.getVelY() * -1); // Always works.
arrayList.remove(i); // Occasionally fails under special circumcisions.
}
}
Run Code Online (Sandbox Code Playgroud)
当第一次打开应用程序新鲜时,这工作正常.但是,如果我使用后退按钮退出然后快速重新打开应用程序,它将全部工作,除了偶尔,从ArrayList中删除对象不会发生.
如果我关闭应用程序然后将其从最近的应用程序列表中删除,它就可以运行.如果我使用主页键或后退按钮退出然后立即重新打开,则有时无法删除该对象.我不明白为什么会这样,因为其他一切仍然有效.它之前的两行代码运行得很好.我只是不明白.
我正在尝试编写一个实现arraylist的类,但每当元素添加到列表中或从列表中删除时,我都会观察并重新绘制我的gui.一切都在语法上是正确的,但在我的代码中似乎存在逻辑错误,因为我得到了一个stackoverflower错误,这使我相信在某个地方有一个我错过的递归调用.确切的错误是
Exception in thread "main" java.lang.StackOverflowError
at java.util.AbstractList.<init>(Unknown Source)
at java.util.ArrayList.<init>(Unknown Source)
at java.util.ArrayList.<init>(Unknown Source)
at Library.<init>(Library.java:45)
at LoanList.<init>(LoanList.java:14)
at Library.<init>(Library.java:47)
at LoanList.<init>(LoanList.java:14)
实际代码约为1k(1,000)行,所以我只会发布我认为应该责备的位.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar; …Run Code Online (Sandbox Code Playgroud) 有人可以帮我弄清楚这里出了什么问题吗?这个java程序需要很长时间才能运行,只要我还没有看到结果.
/* Returns all the factors of a given number */
import java.util.*;
import java.lang.Object;
class factors{
public static ArrayList<Integer> factorList;
public static void get_factors(int num){
factorList = new ArrayList<Integer>();
int i = 2;
while(i < num)
{
if (num%i == 0)
{
factorList.add(i);
i++;
}
}
}
public static void main(String[] args){
int num = 20;
get_factors(num);
for(int i = 0; i < factorList.size(); i++)
{
int element = factorList.get(i);
System.out.println(element);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从文本文件(每行包含由空格分隔的用户名密码对)添加用户名和密码组合列表到名为userList的ArrayList中.User构造函数接受两个字符串,将它们设置为用户名和密码.这应该很简单,但出于某种原因,当我在以下代码之后遍历数组时,所有用户都具有相同的用户名和密码(文本文件中的最后一行).
见下面的代码:
BufferedReader br = new BufferedReader(new FileReader("user_pass.txt"))
String line, username, password;
while ((line = br.readLine()) != null) {
String separated[] = line.split(" ");
username = separated[0];
password = separated[1];
userList.add(new User(username,password));
}
Run Code Online (Sandbox Code Playgroud)
这是我遍历arrayList的方式:
for(User u : userList){
System.out.println(u.getUsername()+" --> "+u.getPassword());
}
Run Code Online (Sandbox Code Playgroud)
这是用户类:
公共类用户{
private static String username;
private static String password;
public User(String u, String p) {
username = u;
password = p;
}
public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
Run Code Online (Sandbox Code Playgroud) 当我尝试将数据从textfile移动到arraylist时,我在行data.add(row)上得到错误; (找不到合适的方法)我该如何解决?如果我想用它来填充java jtable(swing),那么使用arraylist是个好主意吗?
public ArrayList<String> getinformationforthetable() {
Scanner s = null;
ArrayList<String> data = new ArrayList<String>();
try {
s = new Scanner(new File("info.txt"));
while (s.hasNextLine()) {
String line = s.nextLine();
if (line.startsWith("")) {
String[] atoms = line.split("[#]");
ArrayList<String> row = new ArrayList<String>();
row.add(atoms[0]);
row.add(atoms[1]);
row.add(atoms[2]);
row.add(atoms[3]);
row.add(atoms[4]);
row.add(atoms[5]);
data.add(row);
}
}
}
catch(IOException e) {
e.printStackTrace();
}
finally {
if (s != null) {
s.close();
}
}
return data;
}
}
Run Code Online (Sandbox Code Playgroud) 我无法理解并使我的程序的这个功能起作用.我正在创建一个库,我首先将多个对象输入到数组列表中.对象包括媒体的标题和格式.我需要能够搜索我的数组列表中的对象来查找特定对象并将该对象标记为"签出".我一直在研究迭代器,并试图了解如何让它们在对象中找到指定的标题,但我遇到了麻烦.当我尝试println(it.next())时,我得到MediaItem @ 3c4568f8; 所以我知道返回正确的信息格式存在问题.任何有关如何搜索我的项目数组列表中的对象的帮助将不胜感激.
import java.util.Iterator;
import java.util.Scanner;
import java.util.ArrayList;
public class Library {
static ArrayList<MediaItem> items = new ArrayList<MediaItem>();
static int menuOption;
static Scanner scan = new Scanner(System.in);
public static void main(String args[]) {
String title, format, loanedTo, dateLoaned;
boolean right = false;
do {
displayMenu();
if (menuOption == 1) {
System.out.println("Enter Title: ");
title = scan.next();
System.out.println("Enter format: ");
format = scan.next();
addNewItem(title, format);
} else if (menuOption == 2) {
System.out.println("Enter the item title");
title = scan.next(); …Run Code Online (Sandbox Code Playgroud) 我是编程新手,我想弄清楚如何创建一个像这样的数字列表(5,10,15,20,25,一直到500)然后能够检查玩家得分是否等于这些数字中的任何一个
到目前为止,我的代码是这样的..它有效,但只有当分数为5时.
private void drawPower() {
if (myWorld.getScore() == 5) {
batcher.draw(Power, pipe3.getX(), pipe3.getY() + pipe3.getHeight()
+ 30, 20, -14);
}
}
Run Code Online (Sandbox Code Playgroud)
我需要知道需要做什么,而不是
if (myWorld.getScore() == 5) {
Run Code Online (Sandbox Code Playgroud)
这将是
if (myWorld.getScore() == "any number in the list") {
Run Code Online (Sandbox Code Playgroud) 我正在尝试建立我的Java入门知识,并且我正在拓展数据结构.
我在看,ArrayList我不理解以下内容:
List<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,type parameter但我不明白为什么它是必要的和它正在做什么(无论是对构造函数的调用还是初始化变量); 如果有人能用简单的方式向我解释,那就太好了.
谢谢
我有一个名为Course的对象的ArrayList,我试图通过courseID和courseStartTime以两种方式对它进行排序.
编辑:澄清我的意思是我想在某个时间点按courseID对其进行排序,然后在另一个时间按courseStartTime对其进行排序.
class Course implements Comparable<Course> {
private int courseID;
private String courseBeginTime;
@Override
public int compareTo(Course course) {
//what to return?
}
Run Code Online (Sandbox Code Playgroud)
如果我写了两个我自己的比较器,一个用于比较courseID,另一个用于courseStarTime,那么compareTo()类中的方法没有被使用,我不知道要返回什么.
如果我想使用这个compareTo()方法,我不知道怎么写它所以我可以比较courseID和courseStartTime.
arraylist ×10
java ×10
arrays ×2
list ×2
android ×1
generics ×1
implements ×1
inheritance ×1
iterator ×1
loops ×1
object ×1
swing ×1
while-loop ×1