标签: arraylist

当数组的数量和每个数组的长度未知时,生成字符组合的所有排列

我不确定如何以简洁的方式提出我的问题,所以我将从示例开始并从那里扩展.我正在使用VBA,但我认为这个问题是非语言特定的,只需要一个可以提供伪代码框架的聪明头脑.在此先感谢您的帮助!

示例:我有3个字符数组,如此:

Arr_1 = [X,Y,Z] 
Arr_2 = [A,B]
Arr_3 = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想生成所有可能的字符数组排列,如下所示:

XA1
XA2
XA3
XA4
XB1
XB2
XB3
XB4
YA1
YA2
.
.
.
ZB3
ZB4
Run Code Online (Sandbox Code Playgroud)

这可以使用3 while循环或for循环轻松解决.我的问题是,如果数组的数量未知且每个数组的长度未知,我该如何解决这个问题?

所以作为4个字符数组的例子:

Arr_1 = [X,Y,Z]
Arr_2 = [A,B]
Arr_3 = [1,2,3,4]
Arr_4 = [a,b]
Run Code Online (Sandbox Code Playgroud)

我需要生成:

XA1a
XA1b
XA2a
XA2b
XA3a
XA3b
XA4a
XA4b
.
.
.
ZB4a
ZB4b  
Run Code Online (Sandbox Code Playgroud)

所以广义的例子是:

Arr_1 = [...]
Arr_2 = [...]
Arr_3 = [...]
.
.
.
Arr_x = [...]
Run Code Online (Sandbox Code Playgroud)

有没有办法构造一个函数,它将生成一个未知数量的循环并循环遍历每个数组的长度以生成排列?或者也许有更好的方法来思考这个问题?

感谢大家!

arrays computer-science arraylist permutation multidimensional-array

8
推荐指数
2
解决办法
5932
查看次数

Android游戏RPG库存系统

我使用ArrayList作为我的"库存".我无法找到一种方法来添加同一项目的多个而不占用"库存"中的一个点.例如:我在我的库存中添加药水.现在我添加另一种药水,但这次不是在库存中添加另一种药水,而是应该显示我有:药水x 2,而只占用ArrayList中的一个点.我想出了一些解决方案,但我觉得它们好像是不好的做法.我尝试过的一个解决方案是将一个AMOUNT变量添加到项目本身并增加它.帮我找到更好的解决方案?

编辑:好的,请忽略上述内容.我已经得到了相当不错的答案,但让我感到惊讶的是,几乎没有关于角色扮演游戏库存系统的教程.我做了很多谷歌搜索,找不到任何好的例子/教程/源代码.如果有人能指出一些好的例子/教程/源代码(无论什么语言,但更好的java,甚至是c/c ++),我将不胜感激,谢谢.哦,还有关于这个主题的任何书籍.

java android arraylist

8
推荐指数
3
解决办法
4079
查看次数

在android的数组列表中添加项目

我想添加从android的文本视图到现有数组列表的值.我当前的数组列表包含值Cricket,Football和文本视图我想在最后位置添加数组列表中的曲棍球..然后我的数组列表变成Cricket ,足球,曲棍球.我的板球和足球阵列来自之前的活动.但现在它只添加板球和足球,但不添加曲棍球我该怎么办?

 resultArrGame+=resultArrGame.add(txtGame.getText().toString());
Run Code Online (Sandbox Code Playgroud)

android element arraylist

8
推荐指数
2
解决办法
10万
查看次数

从ArrayList(Java)添加到堆栈

我有一个预定义了硬编码值的ArrayList.如何将这些添加到堆栈?这个想法是为了演示堆栈类的pop,push,peek函数.

ArrayList<String> al = new ArrayList<String>();

al.add("A");
al.add("B");
al.add("C");

Stack<String> st = new Stack<String>();

st.push(al); **// This doesn't seem to work.. Will I have to loop it in some way?**

System.out.println(st);
Run Code Online (Sandbox Code Playgroud)

谢谢!

java stack arraylist

8
推荐指数
1
解决办法
1万
查看次数

如何在java中使用布尔值对ArrayLists进行排序?

我有一个带有自定义对象的ArrayList.它们包含我要排序的复选框对象.我正在使用这个比较器函数对它进行排序:

我正在使用XOR运算符来检查它们是否彼此相等,然后否定它.

但是这不起作用,列表保持相同的顺序.

有谁知道什么是错的?

public class CustomSelectSort implements Comparator<ObjPerson> {
    @Override
    public int compare(ObjPerson o1, ObjPerson o2) {
        return !(o1.select.isChecked() ^ o2.select.isChecked()) ? 1 : -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

java sorting android arraylist

8
推荐指数
1
解决办法
7532
查看次数

ArrayList是如何在Java Collection Framework内部表示的.

我正在通过Robert Sedgewick参加Coursera的算法讲座.当罗伯特先生指出一个人不能使用Generics with Arrays时,我有点困惑,因为它是不允许的.但Collection Framework中的ArrayList在内部使用Arrays,允许使用Generic数据类型.我的意思是说我们可以执行以下操作:

ArrayList<Integer> list = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

他指出的一个黑客是这样的:

public class FixedCapacityStack<Item>{
    private Item[] s;
    private int N = 0;

public FixedCapacityStack(int capacity)
{  s = (Item[]) new Object[capacity];} //this hack
Run Code Online (Sandbox Code Playgroud)

他还提到这是一个丑陋的黑客,必须避免,它也会在编译过程中产生警告.

我的问题是:

1.)ArrayList如何在内部表示各种泛型类型?

2.)如果(假设)他们使用上面提到的hack,为什么在用ArrayList编译程序时它不会产生警告?

3.)除了上面的演员之外还有更好的方法吗?

java generics collections casting arraylist

8
推荐指数
1
解决办法
786
查看次数

Java发送电子邮件非法分号?

我正在尝试从数据库发送带有java的电子邮件.由于某种原因我运行我的主方法后,我收到此错误:

Exception in thread "main" javax.mail.internet.AddressException: Illegal semicolon, not in group in string ``john@gmail.com;eric@gmail.com;carrie@gmail.com;mark@gmail.com;britney@gmail.com'' at position 23
    at javax.mail.internet.InternetAddress.parse(InternetAddress.java:929)
    at javax.mail.internet.InternetAddress.parse(InternetAddress.java:638)
    at javax.mail.internet.InternetAddress.parse(InternetAddress.java:615)
    at EmailSender.sendEmail(TestSendEmails.java:120)
    at EmailSender.sendEmail(TestSendEmails.java:128)
    at Main.main(Main.java:8)
Run Code Online (Sandbox Code Playgroud)

我假设我的数组列表构建错误.这是我的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class TestSendEmails {
    private String emailTo;
    private String emailSubject;
    private String emailBody;
    private String emailAttachments;

    public TestSendEmails(){

    }

    public …
Run Code Online (Sandbox Code Playgroud)

java sendmail arraylist

8
推荐指数
1
解决办法
1万
查看次数

将字符串的arraylist从Native java返回到JNI

           ArrayList<String> myArraylist;          

           public ArrayList<String> getData(){
               myArraylist = new ArrayList<String>();          
               myArraylist.add("1267982563");
               myArraylist.add("2345678");
               myArraylist.add("5432789");
               return myArraylist;
           }
Run Code Online (Sandbox Code Playgroud)

如何从JNI端的上述方法获取每个项目,并推送到向量并从JNI返回到JNI层中的其他CPP调用.

java java-native-interface native arraylist

8
推荐指数
1
解决办法
9263
查看次数

使用java流检查arraylist内容

考虑以下ArrayList:

[0] => Person
[1] => User
[2] => Dummy
Run Code Online (Sandbox Code Playgroud)

如何使用Java流检查此arraylist是否包含除Personor 之外的任何其他对象User?

所以,我可以做一个if语句,如果它包含返回null 只 Person和User,或者返回数组列表本身,如果它包含任何其他对象之外Person或User像这样:

if( /*arrayList contains only Person and User*/ ) {
  return null;
}
else {
  //arrayList contains other objects besides Person and User
  return arrayList;
}
Run Code Online (Sandbox Code Playgroud)

java arraylist java-8 java-stream

8
推荐指数
2
解决办法
6832
查看次数

Swift - 确定Array1是否包含Array2中的至少一个对象

我有2个阵列.说,array1 = [1,2,3,4,5]和array2 = [2,3].如果array1包含至少一个项目,我怎么能检查swift array2?

arrays arraylist ios swift

8
推荐指数
3
解决办法
4167
查看次数