View Full Version : مشکل در ساخت کلاس
NIMA_1981
جمعه 17 آذر 1391, 13:28 عصر
دوستان میشه منو راهنمایی کنید که از چه روشی باید مسکلم رو حل کنم
من میخ.ام یک کلاس داشته باشم با متدد add,get اما ورودی add با تعداد آرکومان های نامعلوم باشه از نوع رشته و داخل این متد این آرگومان ها رو بگیره و داخل یک set دو بعدی بریزه که هر وقت خواستم بتونم با ایندکس به هش دسترسی داشته باشم
یعنی اینجوری اگه اسم کلاس uni باشه
uni.add("fizik","math","c++");
uni.add("java","pascal");
uni.add("network","math","c++","java","php");
و وقتی میخوام اطلاعات در دسترسم باشه
uni.get(1) //="fizik","math","c++"
uni.get(2) //="java","pascal"
uni.get(3) //="network","math","c++","java","php"
با تشکر
younes221
جمعه 17 آذر 1391, 14:29 عصر
ســلام ، منظورت رو از Set دو بعدی نگرفتم ، ولی میتونی به شکل زیر جوابت رو بگیری .
اول یک کلاس بساز و بعد یک فیلد به شکل زیر داخلش تعریف کن :
private ArrayList<String> myList = new ArrayList<String>();
سپس 2 تا متد با نام های add و getItem و به شکل زیر داخل کلاست تعریف کن :
public void add(String...input)
{
if(input.length > 0)
{
String result = new String("");
for(String counter:input)
{
result += counter + " ";
}
this.myList.add(result);
}
}
public String getItem(int index)
{
if(index > myList.size()) return "";
else return this.myList.get(index);
}
و در آخر میتونی به شکل زیر ازش استفاده کنی :
prsl1.add("siavash","yahya","ayoub","sara");
String[] result = prsl1.getItem(0).split(" ");
for(String counter:result) System.out.println(counter);
*در کد بالا prsl1 یک شی از کلاسی هست که قبلش ساختیم.
NIMA_1981
جمعه 17 آذر 1391, 16:14 عصر
ببنید منظورم از set مجموعه بود که بصورت دو بعدی باشه یعنی مثلا اندکس 1 را که وارد میکنم مجموعه اول رو به من بده همینطور تا آخر
ببنید من یک سزی درس دارم که به همین روش که بالا گفتم میخوام اضافه کنم هر کدام رو که اضافه میکنم مربوط میشه به یک گروه مثلا 10 گروه اضافه کردم حالا میخوام اشتراک هر گروه با بقیه گروه ها بدست بیارم من واسه اشتراک از ای روش استفاده کردم
public static void main(String[] args) {
Set<String> s1 =new HashSet<String>();
Set<String> s2 =new HashSet<String>();
s1.add("java");
s1.add("C++");
s1.add("fizik");
s1.add("math");
s2.add("fizik");
s2.add("java");
s2.add("network");
s1.retainAll(s2);
System.out.println(s1);
حالا اگه شما راه حل بهتری دارید لطف کنید بگید - من مشکلم اینجا اینه که نمیودنم چند تا گروه دارم واسه این میگم 2 بعدی باشه که بصورت داینامیک ساخته بشه
با تشکر
همایون افشاری
دوشنبه 20 آذر 1391, 19:21 عصر
بهتره از HashMap استفاده کنید.
هر یک از مجموعه های ورودی رو توی یکی از خانه های HashMap اضافه کنید.
void add(String[] strrings) {
map.put(counter++ , strings);
}
String [] get(int i){
return map.get(i);
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.