我有一个ArrayList,其中包含用户填充的字符串,以便在ListView中的其他活动中使用,以查看他们保存的字符串.我想要保存他们填充的ArrayList,但我很失落如何让它工作.我尝试过FileOutputStream,SharedPreferences.我看了很多例子.
比如我有
ArrayList<String> give = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
并保存arraylist香港专业教育学院尝试过的东西
FileOutputStream fos = openFileOutput(MYFILENAME, Context.MODE_PRIVATE);
fos.write(give.getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud)
但这根本不起作用
我有一个方法如下,这个方法包含两个arraylist("eventList"和"emailList").
List<EmailUID> emailid=SharedEvent.getEmailUid(filter, uri, exchWD, EmailShare);
public static List<EmailUID> getEmailUid(Filter filter, String uri, NexWebDav exchWD,
List<String> emailShare)
List eventsToday = null;
List<EmailUID> arrayList = new ArrayList<EmailUID>();
List<EmailUID> emailList = new ArrayList<EmailUID>();
List<EmailUID> eventList = new ArrayList<EmailUID>();
for (String email : emailShare) {
String uris = uri + email + "/events/";
InputStream stream = null;
try {
stream = exchWD.get(uris);
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
CalendarBuilder builder = new CalendarBuilder();
net.fortuna.ical4j.model.Calendar calendar = builder.build(br);
//eventsToday.add(email);
eventsToday = (List<?>) filter.filter(calendar.getComponents(Component.VEVENT));
arrayList=getEmailUID(eventsToday,email); …Run Code Online (Sandbox Code Playgroud) 我知道这是一个简单的问题,但在
ArrayList<ArrayList<String>> collection;
ArrayList<String> listOfSomething;
collection= new ArrayList<ArrayList<String>>();
listOfSomething = new ArrayList<String>();
listOfSomething.Add("first");
listOfSomething.Add("second");
collection.Add(listOfSomething);
listOfSomething.Clear();
listOfSomething.Add("first");
collection.Add(listOfSomething);
Run Code Online (Sandbox Code Playgroud)
我想从ArrayList的ArrayList中获取String,我不知道该怎么做.比如我去
ArrayList<String> myList = collection.get(0);
String s = myList.get(0);
Run Code Online (Sandbox Code Playgroud)
它的工作原理!但:
private List<S> valuesS;
private List<Z> valuesZ;
ArrayList<ArrayList<String>> listOfS;
ArrayList<String> listOfZ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Zdatasource = new ZDataSource(this);
Zdatasource.open();
valuesZ = Zdatasource.getAllZ();
Sdatasource = new SDataSource(this);
Sdatasource.open();
valuesS = Sdatasource.getAllS();
List<Map<String, String>> groupData
= new ArrayList<Map<String, String>>();
List<List<Map<String, String>>> childData
= new ArrayList<List<Map<String, String>>>();
listOfS = new ArrayList<ArrayList<String>>(); …Run Code Online (Sandbox Code Playgroud) 当我做以下,
arrayList1- 包含一个元素,它是一个int[].arrayList2- 不编译(错误:构造函数ArrayList<Integer>(List<int[]>)未定义)arrayList3- 包含7个元素,它们是Integer对象这是代码:
int[] intArray = new int[]{2,3,4,5,6,7,8};
ArrayList arrayList1 = new ArrayList(Arrays.asList(intArray));
ArrayList<Integer> arrayList2 = new ArrayList<Integer>(Arrays.asList(intArray));
Integer[] integerArray = new Integer[]{2,3,4,5,6,7,8};
ArrayList<Integer> arrayList3 = new ArrayList<Integer>(Arrays.asList(integerArray));
Run Code Online (Sandbox Code Playgroud)
问题:
为什么编译器不自动将int[]to 中的元素包装Integer并创建ArrayList<Integer>?这背后的原因是什么?这是我的愚蠢还是其他原因?
我正在尝试创建一种类型的多个对象.然后我想将这些值传输到数组列表中.如何使用具有不同名称的while循环创建对象.例如,这里是我的代码,但它只会生成一个名称的对象.
Customer cust = new Customer("bob", 20.0);
Run Code Online (Sandbox Code Playgroud)
和我的构造函数,如果你想看到:
public Customer(String customerName, double amount)
{
String name=customerName;
double sale=amount;
}
Run Code Online (Sandbox Code Playgroud)
StoreTest类(使用main方法):
import java.util.ArrayList;
import java.util.Scanner;
public class StoreTest {
ArrayList<Customer> store = new ArrayList<Customer>();
public static void main (String[] args)
{
double sale=1.0; //so the loop goes the first time
//switch to dowhile
Scanner input = new Scanner(System.in);
System.out.println("If at anytime you wish to exit" +
", please press 0 when asked to give " +
"sale amount.");
while(sale!=0)
{ …Run Code Online (Sandbox Code Playgroud) 有没有办法找到最常见String的ArrayList?
ArrayList<String> list = new ArrayList<>();
list.add("test");
list.add("test");
list.add("hello");
list.add("test");
Run Code Online (Sandbox Code Playgroud)
应该从这个列表中找到"test"这个词 ["test","test","hello","test"]
ArrayList构造函数的 JDK doc 表示初始容量为10.
这实际上是错误的,因为初始容量为0,直到将某些内容添加到列表中.我检查了Open JDK的源代码以及JDK附带的src.zip.
我知道这是性能优化,但这会被视为错误吗?
我的输入是一个像这样的数组:
[7, 7, 7, 7, 4, 4, 5, 5, 5, 1, 9, 2, 7, 7]
我想将数字组合在一起并添加它们,但按邻居,而不是按数组中的总数。所以输出将是:
['7:4', '4:2', '5:3', 1, 9, 2, '7:2']
我尝试了几种不同的方法,使用reduce, 并接近但使用内置的 Javascript 方法我最终计算了数组中的 ALL,而不是邻居。
const firstArray = [7, 7, 7, 7, 4, 4, 5, 5, 5, 1, 9, 2, 7, 7];
const masterArray = [];
const unique = new Set (numberArray); // Set {7, 4, 5, 1, 9, 2, 7}
unique.forEach(u => {
masterArray.push(numberArray.filter(e => e === u));
});
console.log(masterArray);
Run Code Online (Sandbox Code Playgroud)
在这里使用 Set 显然是错误的,因为它会获取唯一值并对其进行计数,但我只想通过邻居来完成。那么我想我应该使用 a …
我的问题
我有一个固定大小的ArrayList,其中包含自定义变量.尽管ArrayList具有固定的大小,但有时其中很多实际上都是null.问题是我需要返回没有null变量的ArrayList.需要注意的一件重要事情是: ArrayList首先包含所有非空项,然后是它们下面的所有空值,例如,元素不会混合.示例:[非null,非null,.... null,null,null]
我的解决方法
我创建了一个for循环,它检查(从最后到第一个索引)ArrayList中的每个元素,以确定它是否为null.如果为null,那么我将调用此代码:
for (i = size-1; i >=0 ; i--) {
groupList = new ArrayList<>(groupList.subList(0, i));
}
Run Code Online (Sandbox Code Playgroud)
我的问题
如果ArrayList太大,这种方法可能会特别慢(或不是?).我想知道是否存在更好,更友好的解决方案.AFAIK .subList方法很昂贵.
我从A班上返回一份清单.我想从列表中删除第一个元素,并将其作为最后一个元素添加到同一列表中.我是这样做的.
myList.add(myList.get(0));
myList.remove(0);
Run Code Online (Sandbox Code Playgroud)
目标硬件是Android OS.我应该A以一种它返回的方式编写我的类ArrayList,或者LinkedList?哪种情况对以下情况更好:
myList总是有100个元素
myList总是有10个元素
也许我看到一个没有问题的问题.你认为在这种情况下我不应该关心性能,因为问题的大小(对于1和2都很小)?
我知道"过早优化是万恶之源"的说法.这就是为什么我在改变我的实现之前犹豫不决(现在,我的A对象返回一个ArrayList).
arraylist ×10
java ×8
android ×3
arrays ×3
algorithm ×1
autoboxing ×1
foreach ×1
javascript ×1
linked-list ×1
list ×1
object ×1
performance ×1
save ×1
sorting ×1
while-loop ×1